XMLHttpRequest 对象用于与服务器交换数据。
主流浏览器(Chrome,Firefox,IE7 +,Edge,Safari,Opera)都具有内置 XMLHttpRequest 对象。
XMLHttpRequest 通过与后台的 Web 服务器交换数据,来异步更新局部网页,而不必刷新整个页面。
在客户端和服务器之间执行 AJAX 通信之前,首先要做的是示例化一个 XMLHttpReques t对象,如下所示:
var httpRequest = new XMLHttpRequest();测试看看‹/›
出于安全原因,浏览器不允许跨域访问。也就是当前网页和 ajax 要请求的网页地址要在同一个域名下。
(cainiaojc.com)上的实例都是与(cainiaojc.com)域中的地址交互。
如果要在自己的网页上使用上面的示例,则请求的目标地址必须位于您自己的服务器上。
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对象的所有属性:
| 属性 | 描述 | 
|---|---|
| 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对象的所有方法:
| 方法 | 描述 | 
|---|---|
| new XMLHttpRequest() | 创建一个新的XMLHttpRequest对象 | 
| abort() | 取消当前请求 | 
| getAllResponseHeaders() | 返回标题信息 | 
| getResponseHeader() | 返回特定的标头信息 | 
| open(method, url, async) | 指定请求 method:请求类型GET或POST url:文件位置 async:true(异步)或false(同步) | 
| send() | 将请求发送到 用于GET请求的服务器 | 
| send(string) | 将请求发送到服务器。 用于POST请求 | 
| setRequestHeader(header, value) | 将HTTP标头设置为请求 header:指定标头名称 value:指定标头值 |