AJAX XMLHttpRequest 对象
AJAX 的关键是XMLHttpRequest对象。
XMLHttpRequest 对象
所有现代浏览器都支持XMLHttpRequest对象。
XMLHttpRequest对象可用于在后台与服务器交换数据。这意味着可以更新网页的一部分,而不必重新加载整个页面。
创建XMLHttpRequest对象
所有现代浏览器(Chrome、Firefox、IE7+、Edge、Safari Opera)都有一个内置的XMLHttpRequest对象。
创建XMLHttpRequest对象的语法:
variable = new XMLHttpRequest();
跨域访问
出于安全原因,现代浏览器不允许跨域访问。
这意味着网页和它试图加载的XML文件必须位于同一服务器上。
W3Schools上的实例都打开了位于W3Schools域上的XML文件。
如果要在自己的某个网页上使用上述实例,则加载的XML文件必须位于自己的服务器上。
旧版本的Internet Explorer(IE5和IE6)
旧版本的Internet Explorer(IE5和IE6)使用ActiveX对象而不是XMLHttpRequest对象:
variable = new ActiveXObject("Microsoft.XMLHTTP");
要处理IE5和IE6,请检查浏览器是否支持XMLHttpRequest对象,或者创建ActiveX对象:
实例
if (window.XMLHttpRequest) {
// code for modern browsers
xmlhttp = new XMLHttpRequest();
}
else {
// code for old IE browsers
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
尝试一下 »
XMLHttpRequest 对象方法
方法 | 描述 |
---|---|
new XMLHttpRequest() | 创建新的XMLHttpRequest对象 |
abort() | 取消当前请求 |
getAllResponseHeaders() | 返回标题信息 |
getResponseHeader() | 返回特定的标题信息 |
open(method,url,async,user,psw) | 指定请求 方法:请求类型 GET 或 POST url:文件位置 async:true(异步)或 false(同步) user:可选用户名 psw:可选密码 |
send() | 将请求发送到服务器 用于获取请求 |
send(string) | 将请求发送到服务器。 用于POST请求 |
setRequestHeader() | 将标签/值对添加到要发送的标头 |
XMLHttpRequest 对象属性
属性 | 描述 |
---|---|
onreadystatechange | 定义readyState属性更改时要调用的函数 |
readyState | 保存XMLHttpRequest的状态。 0: 请求未初始化 1: 已建立服务器连接 2: 已收到请求 3: 正在处理请求 4: 请求已完成,响应已准备就绪 |
responseText | 以字符串形式返回响应数据 |
responseXML | 以XML数据的形式返回响应数据 |
status | 返回请求的状态号 200: "OK" 403: "Forbidden" 404: "Not Found" 如需完整列表,请访问 Http 消息参考 |
statusText | 返回状态文本(例如确定或未找到) |