XMLHttpRequest对象是AJAX的关键.自从Internet Explorer 5.5于2000年7月发布以来,它一直可用,但直到2005年的AJAX和Web 2.0变得流行才被发现.
XMLHttpRequest(XHR)是一个可以使用的API被JavaScript,JScript,VBScript和其他Web浏览器脚本语言用于使用HTTP在Web服务器之间传输和操作XML数据,在网页的客户端和服务器端之间建立独立的连接通道.
从XMLHttpRequest调用返回的数据通常由后端数据库提供.除了XML之外,XMLHttpRequest还可用于获取其他格式的数据,例如JSON甚至纯文本.
您已经看过几个关于如何创建XMLHttpRequest对象的示例.
下面列出了一些您必须熟悉的方法和属性.
abort()
取消当前请求.
getAllResponseHeaders()
以字符串形式返回完整的HTTP标头集.
getResponseHeader(headerName )
返回指定HTTP标头的值.
open( method, URL )
open( method, URL, async )
open( method, URL, async, userName )
open( method, URL, async, userName, password )
指定请求的方法,URL和其他可选属性.
方法参数可以具有"GET","POST"或"HEAD"的值.其他HTTP方法(如"PUT"和"DELETE"(主要用于REST应用程序))也是可能的.
"async"参数指定是否应异步处理请求. "true"表示脚本处理在send()方法之后继续而不等待响应,"false"表示脚本在继续脚本处理之前等待响应.
send( content )
发送请求.
setRequestHeader(label,value)
向要发送的HTTP标头添加标签/值对.
onreadystatechange
每次状态更改时触发的事件的事件处理程序.
readyState
readyState属性定义XMLHttpRequest对象的当前状态.
下表提供了readyState属性的可能值列表 :
状态 | 描述 |
---|---|
0 | 请求未初始化. |
1 | 已设置请求. |
2 | 请求已发送. |
3 | 请求正在处理中. |
4 | 请求已完成. |
readyState = 0 创建XMLHttpRequest对象之后,但在调用之前open()方法.
readyState = 1 在调用open()方法之后,但在调用send()之前.
readyState = 2 调用send()之后.
readyState = 3 浏览器启用后建立与服务器的通信,但在服务器完成响应之前.
readyState = 4 请求之后已完成,并且已完全从服务器收到响应数据.
responseText
以字符串形式返回响应.
responseXML
以XML格式返回响应.此属性返回一个XML文档对象,可以使用W3C DOM节点树方法和属性对其进行检查和解析.
status
以数字形式返回状态(例如,"Not Found"为404,"OK"为200).
statusText
以字符串形式返回状态(例如,"未找到"或"确定").