標籤:html jquery jquery ajax ajax
XMLxmlHttpuest 對象
AJAX 的要點是 XMLxmlHttpuest 對象。
使用 XMLxmlHttpuest 對象對象實現非同步通訊一般需要以下幾個步驟:
(1)定義 XMLxmlHttpuest 對象執行個體
(2)調用open()方法建立與伺服器的串連
(3)註冊onreadystatechange事件處理函數,以便接收和處理從伺服器端響應的資訊
(4)調用send()方法發送請求
(1)執行個體化XMLxmlHttpuest 對象
不同的瀏覽器建立 XMLxmlHttpuest 對象的方法是有差異的。 IE 瀏覽器使用 ActiveXObject,而其他的瀏覽器使用名為 XMLxmlHttpuest 的 JavaScript 內建對象。
try{
// Firefox, Opera 8.0+, Safari 等非IE瀏覽器
XMLHttpRequest xmlHttp=new XMLHttpRequest(); }
catch (e){
// Internet Explorer IE瀏覽器
try{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); }
catch (e){ try{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); }
catch (e){
alert("您的瀏覽器不支援AJAX!");
return false; } } }
(2)建立串連
定義了XMLHttpRequest對象後,調用open()方法可以建立非同步串連:
xmlHttp.open(method,url,async,user,password)
method:請求的方式GET/POST/PUT/PROPFIND一般都使用(GET/POST) ②開啟請求,裝載資料
url:即請求的地址,可以為絕對位址,也可以為相對位址
async:為可選項,設定是否為非同步通訊(true or false)
user和password表示請求的伺服器需要進行驗證
例如:xmlHttp.open("GET","test.asp","true");
xmlHttp.open("GET",url,true);
xmlHttp.onreadystatechange=dowork;(dowork是一個JS)
xmlHttp.send(null);
(3)綁定onreadystatechange時間處理函數
xmlHttp. onreadystatechange=response;
function response(){
////可通過xmlHttp.readyState屬性值跟蹤通訊狀態或xmlhttp.responseBody,responseStream,responseText,responseXML等屬性來儲存伺服器端不同的響應資訊
readyState屬性值:
0:請求未初始化(還沒有調用 open())。
1:請求已經建立,但是還沒有發送(還沒有調用 send())
2:請求已發送,正在處理中(通常現在可以從響應中擷取內容標題)。
3:請求在處理中;通常響應中已有部分資料可用了,但是伺服器還沒有完成響應的產生。
4:響應已完成;您可以擷取並使用伺服器的響應了
}
(4)通過send()方法來發送請求
xmlHttp.send(null);
一個完整的通訊為:
XMLHttpRequest xmlHttp=new XMLHttpRequest();
xmlHttp.open(); 建立串連
xmlHttp.onreadystatechange=response; 綁定onreadystatechange事件
xmlHttp.send(null); 發送請求
alert(xmlHttp.response.responseText);//提示伺服器端相應資訊
AJAX XMLxmlHttpuest 對象