導航:首頁 > 編程語言 > 純jsajax

純jsajax

發布時間:2023-03-01 02:56:24

js如何實現Ajax的請求函數

<scripttype="text/javascript">
//請求函數
functionf1(){
console.log('start');
//1.創建AJAX對象
varajax=newXMLHttpRequest();

//4.給AJAX設置事件(這里最多感知4[1-4]個狀態)
ajax.onreadystatechange=function(){
//5.獲取響應
//responseText以字元串的形式接收伺服器返回的信息
//console.log(ajax.readyState);
if(ajax.readyState==4&&ajax.status==200){
varmsg=ajax.responseText;
console.log(msg);
//alert(msg);
vardivtag=document.getElementById('result');
divtag.innerHTML=msg;
}
}

//2.創建http請求,並設置請求地址
varusername=document.getElementsByTagName('input')[0].value;
varemail=document.getElementsByTagName('input')[1].value;
username=encodeURIComponent(username);//對輸入的特殊符號(&,=等)進行編碼
email=encodeURIComponent(email);
ajax.open('get','response.php?username='+username+'&email='+email);

//3.發送請求(get--nullpost--數據)
ajax.send(null);
}

</script>

⑵ ajax與普通js有什麼區別,javascript和AJAX的區別

javascript是一種在客抄戶端執行的腳本語言。ajax是基於javascript的一種技術,它主要用途是提供非同步刷新(只刷新頁面的一部分,而不是整個頁面都刷新)。一個是語言,一個是技術,兩者有本質區別.

⑶ js如何通過Ajax的方式提交表單(注意不是以jquery而是以js原生代碼的方式提交)

ajax({
url:"",//請求地址
type:"POST",//請求方式
data:{name:"super",age:20},//請求參數
dataType:"json",
success:function(response,xml){
//此處放成功後執行的代碼
},
fail:function(status){
//此處放失敗後執行的代碼
}
});
functionajax(options){
options=options||{};
options.type=(options.type||"GET").toUpperCase();
options.dataType=options.dataType||"json";
varparams=formatParams(options.data);
if(window.XMLHttpRequest){
varxhr=newXMLHttpRequest();
}else{
varxhr=newActiveXObject('Microsoft.XMLHTTP');
}
xhr.onreadystatechange=function(){
if(xhr.readyState==4){
varstatus=xhr.status;
if(status>=200&&status<300){
options.success&&options.success(xhr.responseText,xhr.responseXML);
}else{
options.fail&&options.fail(status);
}
}
}
if(options.type=="GET"){
xhr.open("GET",options.url+"?"+params,true);
xhr.send(null);
}elseif(options.type=="POST"){
xhr.open("POST",options.url,true);
xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xhr.send(params);
}
}
functionformatParams(data){
vararr=[];
for(varnameindata){
arr.push(encodeURIComponent(name)+"="+encodeURIComponent(data[name]));
}
arr.push(("v="+Math.random()).replace("."));
returnarr.join("&");
}

⑷ 原生js實現ajax封裝好怎麼使用

可以這樣

1varAjax={
//ajax模塊
init:function(obj){
//初始化數據
varobjAdapter={
url:'',
method:'get',
data:{},
success:function(){},
complete:function(){},
error:function(s){
alert('status:'+s+'error!');
},
async:true
}
//通過使用隨機字元串解決IE瀏覽器第二次默認獲取緩存的問題
objAdapter.url=obj.url+'?rand='+Math.random();
objAdapter.method=obj.method||objAdapter.method;
objAdapter.data=Ajax.params(obj.data)||Ajax.params(objAdapter.data);
objAdapter.async=obj.async||objAdapter.async;
objAdapter.complete=obj.complete||objAdapter.complete;
objAdapter.success=obj.success||objAdapter.success;
objAdapter.error=obj.error||objAdapter.error;
returnobjAdapter;
},
//創建XMLHttpRequest對象
createXHR:function(){
if(window.XMLHttpRequest){//IE7+、Firefox、Opera、Chrome和Safari
returnnewXMLHttpRequest();
}elseif(window.ActiveXObject){//IE6及以下
varversions=['MSXML2.XMLHttp','Microsoft.XMLHTTP'];
for(vari=0,len=versions.length;i<len;i++){
try{
returnnewActiveXObject(version[i]);
break;
}catch(e){
//跳過
}
}
}else{
thrownewError('瀏覽器不支持XHR對象!');
}
},
params:function(data){
vararr=[];
for(variindata){
//特殊字元傳參產生的問題可以使用encodeURIComponent()進行編碼處理
arr.push(encodeURIComponent(i)+'='+encodeURIComponent(data[i]));
}
returnarr.join('&');
},
callback:function(obj,xhr){
if(xhr.status==200){//判斷http的交互是否成功,200表示成功
obj.success(xhr.responseText);//回調傳遞參數
}else{
alert('獲取數據錯誤!錯誤代號:'+xhr.status+',錯誤信息:'+xhr.statusText);
}
},
ajax:function(obj){
if(obj.method==='post'){
Ajax.post(obj);
}else{
Ajax.get(obj);
}
},
//post方法
post:function(obj){
varxhr=Ajax.createXHR();//創建XHR對象
varopt=Ajax.init(obj);
opt.method='post';
if(opt.async===true){//true表示非同步,false表示同步
//使用非同步調用的時候,需要觸發readystatechange事件
xhr.onreadystatechange=function(){
if(xhr.readyState==4){//判斷對象的狀態是否交互完成
Ajax.callback(opt,xhr);//回調
}
};
}
//在使用XHR對象時,必須先調用open()方法,
//它接受三個參數:請求類型(get、post)、請求的URL和表示是否非同步。
xhr.open(opt.method,opt.url,opt.async);
//post方式需要自己設置http的請求頭,來模仿表單提交。
//放在open方法之後,send方法之前。
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
xhr.send(opt.data);//post方式將數據放在send()方法里
if(opt.async===false){//同步
Ajax.callback(obj,xhr);//回調
}
},
//get方法
get:function(obj){
varxhr=Ajax.createXHR();//創建XHR對象
varopt=Ajax.init(obj);
if(opt.async===true){//true表示非同步,false表示同步
//使用非同步調用的時候,需要觸發readystatechange事件
xhr.onreadystatechange=function(){
if(xhr.readyState==4){//判斷對象的狀態是否交互完成
Ajax.callback(obj,xhr);//回調
}
};
}
//若是GET請求,則將數據加到url後面
opt.url+=opt.url.indexOf('?')==-1?'?'+opt.data:'&'+opt.data;
//在使用XHR對象時,必須先調用open()方法,
//它接受三個參數:請求類型(get、post)、請求的URL和表示是否非同步。
xhr.open(opt.method,opt.url,opt.async);
xhr.send(null);//get方式則填null
if(opt.async===false){//同步
Ajax.callback(obj,xhr);//回調
}
}
};

⑸ 解釋js ajax和cgi各是什麼工具在b/s中起什麼作用

名詞解釋:


在b/s架構中的所扮演的角色


綜述:

js是瀏覽器端實現動態性交互的基礎,沒有js的網頁只能是靜態網頁,所有的交互必須通過http請求重新刷新網頁。

ajax是實現網頁類富客戶端應用的前提條件。有了它網頁可以在不刷新網頁的基礎上跟後端伺服器進行數據交互。

cgi是處理客戶端或瀏覽器端請求的伺服器進程。我們用它來產生動態網頁內容。

⑹ js文件的ajax的url該怎麼寫

建議用jquery寫ajax,用原生js寫ajax難度有點大。

jQuery-AJAXget()和post()方法。沒使用緩存技術的話可以直接用post代替get。

Query$.post()方法

$.post()方法通過HTTPPOST請求從伺服器上請求數據。與$.get()方法的區別是$.post()可以發送參數到伺服器,伺服器進行處理後再放回數據

語法:$.post(URL,data,callback);

必需的URL參數規定您希望請求的URL。

可選的data參數規定連同請求發送的數據。

可選的callback參數是請求成功後所執行的函數名。

注意:

實例:

$("button").click(function(){

$.post("demo_test_post.asp",

{

name:"DonaldDuck",

city:"Duckburg"

},

function(data,status){

alert("Data:"+data+" Status:"+status);

});

});


閱讀全文

與純jsajax相關的資料

熱點內容
壓縮文件md5在哪看 瀏覽:826
如何卸載文件類型為lnk的文件 瀏覽:909
iphone4s運營商怎麼改 瀏覽:309
雲天視機升級怎麼弄 瀏覽:283
win10自帶的驅動刪除了怎麼辦 瀏覽:143
whatsapp此時無法下載 瀏覽:209
java網路位元組序轉換 瀏覽:233
美版iphone4蜂窩 瀏覽:626
word文件打開就最大化 瀏覽:998
經緯度和浮點數轉換工具 瀏覽:402
群星最新版本 瀏覽:471
歐洲童裝網站有哪些 瀏覽:783
win10默認頭像下載 瀏覽:216
dnf2017代碼大全 瀏覽:219
編程項目經理證書怎麼考 瀏覽:570
律師咨詢什麼app 瀏覽:863
ps導入ai什麼格式文件 瀏覽:255
手機升級系統的利弊 瀏覽:411
如何判斷兩列是否相同的數據 瀏覽:25
安卓系統微信文件夾 瀏覽:19

友情鏈接