AJAX - XMLHttpRequest

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对象的示例.

下面列出了一些您必须熟悉的方法和属性.

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标头添加标签/值对.

XMLHttpRequest属性

  • 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

    以字符串形式返回状态(例如,"未找到"或"确定").