AJAX - XMLHttpRequest 对象

XMLHttpRequest 对象用于与服务器交换数据。

XMLHttpRequest 对象

主流浏览器(Chrome,Firefox,IE7 +,Edge,Safari,Opera)都具有内置 XMLHttpRequest 对象。

XMLHttpRequest 通过与后台的 Web 服务器交换数据,来异步更新局部网页,而不必刷新整个页面。

创建一个 XMLHttpRequest 对象

在客户端和服务器之间执行 AJAX 通信之前,首先要做的是示例化一个 XMLHttpReques t对象,如下所示:

示例
var httpRequest = new XMLHttpRequest();
测试看看‹/›

跨站点XMLHttpRequest

出于安全原因,浏览器不允许跨域访问。也就是当前网页和 ajax 要请求的网页地址要在同一个域名下。

(cainiaoplus.com)上的实例都是与(cainiaoplus.com)域中的地址交互。

如果要在自己的网页上使用上面的示例,则请求的目标地址必须位于您自己的服务器上。

较旧的浏览器(适用于IE 6及更早版本)

Internet Explorer的旧版本(6和更早版本)使用的是ActiveX对象而不是XMLHttpRequest对象。

要处理IE6及更早版本,请检查浏览器是否支持该XMLHttpRequest对象,否则创建一个ActiveX对象:

示例
var httpRequest;

if (window.XMLHttpRequest) {
    // 目前主流的浏览器(Chrome, Mozilla, Safari, IE7+, ...)
    httpRequest = new XMLHttpRequest();
} else if (window.ActiveXObject) {
    // <= IE 6 或早期IE版本
    httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
}
测试看看‹/›

XMLHttpRequest对象属性

下表列出了XMLHttpRequest对象的所有属性:

属性 描述
onreadystatechange 定义当readyState属性更改时要调用的函数
readyState 保持XMLHttpRequest的状态:
0:请求未初始化
1:服务器连接建立
2:收到请求
3:处理请求
4:请求完成并且响应准备就绪
responseText 以字符串形式返回响应数据
responseXML 将响应数据作为XML数据返回
status 返回请求的状态号:
200:“OK”
403:“Forbidden”
404:“Not Found”
有关完整列表,请访问HTTP状态代码参考
statusText 返回状态文本(例如,“OK”或“Not Found”)

XMLHttpRequest对象方法

下表列出了XMLHttpRequest对象的所有方法:

方法 描述
new XMLHttpRequest() 创建一个新的XMLHttpRequest对象
abort() 取消当前请求
getAllResponseHeaders() 返回标题信息
getResponseHeader() 返回特定的标头信息
open(method, url, async) 指定请求
method:请求类型GETPOST
url:文件位置
async:true(异步)或false(同步)
send() 将请求发送到
用于GET请求的服务器
send(string) 将请求发送到服务器。
用于POST请求
setRequestHeader(header, value) 将HTTP标头设置为请求
header:指定标头名称
value:指定标头值