XMLHttpRequest對象是Ajax的核心,它有很多的屬性、方法和事件以便於腳本處理和控制HTTP的請求和相應。
一、XMLHttpRequest對象的屬性和事件
屬性 描述
readyState 表示XMLHttpRequest對象的狀態
responseText 包含客戶端接收到的HTTP相應的文本內容
responseXML 服務器響應的XML內容對應的DOM對象
status 服務器返回http狀態碼
statusText 服務器返回狀態碼的文本信息
事件 描述
onreadystatechange 當readyState屬性發生變化時觸發此事件,用於觸發回調函數。
XMLHttprequest對象的方法
1、readyStates屬性
狀態 名稱 描述
0 Uninitialized 初始化狀態。XMLHttpRequest 對象已創建或已被 abort() 方法重置。
1 Open open() 方法已調用,但是 send() 方法未調用。請求還沒有被髮送。
2 Send Send() 方法已調用,HTTP 請求已發送到 Web 服務器。未接收到響應。
3 Receiving 所有響應頭部都已經接收到。響應體開始接收但未完成。
4 Loaded HTTP 響應已經完全接收。
2、responseText屬性
readyState=4時,responseText包含完整的響應信息。
readyState=3時,responseText包含未完整的響應信息。
readyState<3時,responseText爲空字符串。
3、responseXML屬性
當readyState=4,並且響應頭部的Content-Type的MIME類型爲XML(text/xml或application/xml)時,該屬性有值並且被解析成一個XML文檔。其它情況爲null,包括回傳的XML文檔不良或未完成響應回傳。
4、status屬性
如 200 表示成功,而 404 表示 "NotFound" 錯誤。當 readyState 小於 3 的時候讀取這一屬性會導致一個異常。
5、statusText屬性
當狀態爲 200 的時候它是"OK",當狀態爲 404 的時候它是 "Not Found"。和 status 屬性一樣,當 readyState 小於 3 的時候讀取這一屬性會導致一個異常。
XMLHttprequest對象的方法
1.open方法
描述:制定和服務器交互的HTTP方法,URL地址及其他請求信息。
open(method,url, async, username, password) 用來進行初始化工作
返回值:得到一個包含send()方法的對象
method:必須。用於指定HTTP請求方法,支持所有HTTP的方法,如GET,POST,按規定
uri:請求的服務器的地址,自動解析成絕對地址。
async:請求是否異步,true表示你異步,false表示同步,默認爲true。
username,password:可以不指定,分別表示用戶名和密碼,提供HTTP認證機制需要的用戶名和密碼。
調用open後,readystate狀態爲1.
2.send(content)方法
描述:向服務器發出請求,其內容可以是DOM對象,輸入流或是字符串。
調用open 方法後,可以調用send()方法來發送請求。
當open 中async=true時,send()方法調用後立即返回,否則會中斷直到請求返回。
3.abort()方法
該方法可以暫停一個HttpRequest請求或者HttpResponse的接收,並且將XMLHttpRequest的狀態設置爲初始化。
4.setRequestHeader(header,value)方法
該方法用來設置請求的頭部信息。此方法需要在open方法之後調用。
5.getResponseHeader()方法
描述:返回包含HTTP的所有響應頭信息,其中響應頭包括Content-Length,Date,URI等內容。
當readystate>2時,該方法用來檢索響應的頭部信息。否則返回一個空字符串。
getAllResponseHeaders()方法返回所有的HttpResponse頭部信息。