XMLHttpRequest 对象用于与服务器交换数据。
主流浏览器(Chrome,Firefox,IE7 +,Edge,Safari,Opera)都具有内置 XMLHttpRequest 对象。
XMLHttpRequest 通过与后台的 Web 服务器交换数据,来异步更新局部网页,而不必刷新整个页面。
在客户端和服务器之间执行 AJAX 通信之前,首先要做的是示例化一个 XMLHttpReques t对象,如下所示:
var httpRequest = new XMLHttpRequest();测试看看‹/›
出于安全原因,浏览器不允许跨域访问。也就是当前网页和 ajax 要请求的网页地址要在同一个域名下。
(thinktus.com)上的实例都是与(thinktus.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:指定标头值 |