當前位置:編程學習大全網 - 源碼下載 - 原生JS與jQuery對AJAX的實現定義是什麽?

原生JS與jQuery對AJAX的實現定義是什麽?

/**

js原生代碼實現ajax

*AJAX建立和服務器的連接,接收服務器的請求,處理服務器返回的數據

*開發步驟:

*1.創建XMLHttpRequest對象

*2.接收/處理服務器的響應

*3.打開和服務器的連接

*4.發送數據

*/

/**

*?創建XMLHttpRequest對象

*/

function?ajaxFunction(){

var?xmlHttp;

try{//Firefox,Opera?8.0+,Safari

xmlHttp=new?XMLHttpRequest();

}catch(e){

try{//Internet?Explorer

xmlHttp=new?ActiveXObject("Msxml2.XMLHTTP");

}catch(e){

try{

xmlhttp=new?ActiveXObject("Microsoft.XMLHTTP");?

}catch(e){}

}

}

return?xmlHttp;

}

//click?function

window.onload=function(){

//<input?type="button"?name="ok"?id="ok"?value="test?service?link"?/>

document.getElementById("ok").onclick=function(){

/*

*?1.獲取XMLHttpRequest對象

*/

var?xmlReq=ajaxFunction();

/*

*?2.處理服務器的響應

*?XMLHttpRequest對象中有壹個readyState屬性

*?readyState?屬性表示Ajax請求的當前狀態。它的值用數字代表。

*?0?代表未初始化。還沒有調用open方法

*?1代表正在加載。open方法已被調用。但send方法沒有被調用

*?2代表已加載完畢。send已被調用。請求已經開始

*?3代表交互中。服務器正在發送響應

*?4代表完畢。響應發送完畢。

*/

xmlReq.onreadystatechange=function(){

//

if(xmlReq.readyState==4){

//通過把這個值和200(壹切正常,服務器處理成功)或304(源文件沒有被修改)比較

if(xmlReq.status==200||xmlReq.status==304){

//接收服務器端數據

var?data=xmlReq.responseText;

alert("data:"+data);

}

}

};

/*

*?3.打開和服務器的連接

*?open(method,url,asynch)

*?method?請求方法?get?post

*?url?請求的路徑

*?asynch:表示請求是否要異步傳輸,默認值為true(異步)

*/

//alert(new?Date().getTime());//(解決緩存的問題)

xmlReq.open("post","../testServlet?timeStamp="+new?Date().getTime()+"&a=9",true);

/*

*?xmlReq.setRequestHeader()

*如果用post請求服務器發送的數據

*?需要將"content-Type"的首部設置為"application/x-www-form-urlencoded"。它會告訴服務器正在發送數據

*?並且數據已經符合url編碼了

*?該方法必須放在open方法之後

*/

xmlReq.setRequestHeader("content-Type","application/x-www-form-urlencoded");

/*

*?4.發送數據

*?若選用的是get請求,則不會發送任何數據,給send方法傳遞null即可

*/

/*xmlReq.send(null);*/

xmlReq.send("b=45&c=23");

};

};

  • 上一篇:電腦藍屏錯誤代碼19怎麽辦
  • 下一篇:java培訓課程表?
  • copyright 2024編程學習大全網