鍍金池/ 教程/ HTML/ Ajax XMLHttpRequest
Ajax 技術(shù)
Ajax 安全
Ajax 示例
Ajax 瀏覽器支持
Ajax 實(shí)戰
Ajax XMLHttpRequest
什么是 Ajax?
Ajax 數據庫操作
Ajax 相關(guān)問(wèn)題

Ajax XMLHttpRequest

XMLHttpRequest 對象是 Ajax 的關(guān)鍵。它從 2000 年 7 月發(fā)布的 IE 5.5 開(kāi)始可用,但是直到 2005 年 Ajax 和 Web 2.0 變得流行起來(lái)它都沒(méi)有完全被發(fā)覺(jué)。

XMLHttpRequest (XHR) 是一個(gè)可以用 JavaScript,JScript,VBScript 和其他 Web 瀏覽器腳本語(yǔ)言傳輸和操作 XML 數據,以及使用 HTTP 從 Web 服務(wù)器上在網(wǎng)頁(yè)客戶(hù)端和服務(wù)端之間建立一個(gè)獨立連接通道的 API。

調用 XMLHttpRequest 返回的數據通常都由后端數據庫提供。除了 XML 之外,XMLHttpRequest 還可以用來(lái)獲取其他格式的數據,例如 JSON 或者是純文本。

我們已經(jīng)見(jiàn)過(guò)好幾個(gè)講述如何創(chuàng )建 XMLHttpRequest 對象的例子了。

下面列出的是一些我們必須熟悉的方法和屬性。

XMLHttpRequest 方法

1、abort()
取消當前請求。

2、getAllResponseHeaders()
返回整套 HTTP 頭字符串。

3、getResponseHeader( headerName )
返回指定 HTTP 頭的值。

4、
open( method, URL )
open( method, URL, async )
open( method, URL, async, userName )
open( method, URL, async, userName, password )

指定請求的方法,URL 以及其他可選屬性。

方法參數可以是 "GET","POST" 或者 "HEAD" 中的一個(gè)值。也可以是其他 HTTP 方法,比如 "PUT" 和 "DELETE"(主要用于 REST 應用程序中)。

"async" 參數指定該請求是否應該異步處理。"true" 意味著(zhù)腳本處理發(fā)生在 send() 方法之后而不必等待響應,而 "false" 意味著(zhù)繼續腳本處理之前腳本要等待響應。

5、send( content )
發(fā)送請求。

6、setRequestHeader( label, value )
給 HTTP 頭添加一個(gè)標簽/值對進(jìn)行發(fā)送。

XMLHttpRequest 屬性

1、onreadystatechange
一個(gè)用于事件的事件處理程序,每個(gè)狀態(tài)變化時(shí)都會(huì )觸發(fā)。

2、readyState
readyState 屬性定義了 XMLHttpRequest 對象的當前狀態(tài)。

下面的表格提供了一個(gè) readyState 屬性可能值的列表:

狀態(tài) 描述
0 請求還未初始化。
1 請求已經(jīng)建立。
2 請求已經(jīng)發(fā)送。
3 請求正在處理。
4 請求已經(jīng)完成。

readyState = 0
在 XMLHttpRequest 對象創(chuàng )建之后,但是在我們調用 open() 方法之前。

readyState = 1
在調用 open() 方法之后,但是在調用 send() 之前。

readyState = 2
在我們調用 send() 之后。

readyState = 3
在瀏覽器建立與服務(wù)器的通信之后,但是在服務(wù)器完成響應之前。

readyState = 4
在請求完成以及響應數據已經(jīng)完全從服務(wù)器接受之后。

3、responseText 返回響應字符串。

4、responseXML
返回響應的 XML 數據。這個(gè)屬性返回一個(gè) XML 文檔對象,我們可以使用 W3C DOM 節點(diǎn)樹(shù)方法和屬性檢查并解析它。

5、status
返回狀態(tài)數字(比如 404 表示 "Not Found" 或者 200 表示 "OK")。

6、statusText
返回狀態(tài)字符串(比如 "Not Found" 或者 "OK")。