使用xmlHttprequest 發送異步請求(Ajax核心對象)

1.建立XMlHtttpRequest對象瀏覽器

  由於瀏覽器不一樣載入xmlHttpRequst的方式也不同服務器

  IE中:var  xmlhttp=new ActiveXObject("MSXML2.XMLHTTP");異步

  其餘瀏覽器:var  xmlhttp=new  XMLHttpRequest();post

 

2.對onreadystatechange事件追加方法url

當xmlhttp.readystate 狀態改變時會自動觸發這個事件spa

readystate可能出現的五種狀態:xml

0:未初始化;XMLHttpRequest已經建立,但還未調用Open()方法;對象

1:載入;此階段Open()方法已經執行,正在使用send()方法向服務器發送請求;事件

2:載入完成;send()執行結束,此時已獲取響應的原始數據,但還不能在客戶端使用;get

3:交互;解析獲取到的響應數據,根據響應頭部的MIME類型把解析到的數據轉換成ResponseText,ResponseXML,ResponseBody能存取的格式的數據。爲客戶端調用作準備。

4:完成;解析結束,直接能夠經過XMLHttpRequest響應的屬性,獲取響應的數據;

xmlhttp.status:

1xx:信息響應類,表示接收到請求而且繼續處理 
2xx:處理成功響應類,表示動做被成功接收、理解和接受 
3xx:重定向響應類,爲了完成指定的動做,必須接受進一步處理 
4xx:客戶端錯誤,客戶請求包含語法錯誤或者是不能正確執行 
5xx:服務端錯誤,服務器不能正確執行一個正確的請求

readystate 與 status的區別

readystate是表示XMLHttpRequest發送請求的狀態,是主體。status是表示在相應的請求狀態下,具體的響應狀態。readystate體現客戶端發送請求的狀態,status體現服務器具體的響應狀態。

代碼:

xmlhttp.onreadystatechange = function () {

if (xmlhttp.readyState == 4) {
if (xmlhttp.status == 200) {
var text = xmlhttp.responseText;//獲取響應數據
alert(text);}

   }

}

 

2.建立Http請求,發送請求

   參數有5個:method:是post仍是get請求;url:請求的地址 ; isAsync:是否異步發送請求;user:用戶名;password:密碼

   xmlhttp.Open("POST",URL,isAsync);

 

3.自定義請求頭

  xmlhttp.setRequestHeader("Content-Type", "textxml"); 

 

4.發送請求

  xmlhttp.send("<Method>GetData</Method>");

  

這只是初學者的理解,歡迎斧正!

相關文章
相關標籤/搜索