AJAX的核心是XMLHttpRequest对象。
XMLHttpRequest 对象
支持所有现代浏览器的XMLHttpRequest对象
XMLHttpRequest 对象用于与后台服务器交换数据。这意味着它可以更新网页的一部分,无需重新加载整个页面.
创建一个XMLHttpRequest对象
所有现代浏览器(Chrome, IE7+, Firefox, Safari, and Opera)有一个内置的XMLHttpRequest对象.
创建一个XMLHttpRequest对象语法如下:
variable = new XMLHttpRequest();
旧版本的Internet Explorer (IE5 和 IE6) 使用ActiveX 对象:
variable = new ActiveXObject("Microsoft.XMLHTTP");
处理所有浏览器, 包括 IE5 和 IE6, 检查浏览器是否支持XMLHttpRequest对象。如果没有创建XMLHttpRequest对象,创建一个ActiveX对象:
var xhttp;
if (window.XMLHttpRequest) {
xhttp = new XMLHttpRequest();
} else {
// code for IE6, IE5
xhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
跨域访问
出于安全原因,现代浏览器不允许跨域访问.
这意味着它试图加载的网页和XML文件必须位于同一服务器上。.
编程字典的实例,所有打开的XML文件都位于codingdict.com域上。
如果您想在您自己的网页上使用上述示例,则加载的XML文件必须位于您自己的服务器上。
旧版本的Internet Explorer (IE5 和 IE6)
旧版本的Internet Explorer (IE5 和 IE6) 不支持 XMLHttpRequest 对象.
处理IE5 和 IE6, 检查浏览器是否支持 XMLHttpRequest 对象, 否则创建一个ActiveXObject:
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()
使用GET请求,发送请求到服务器
send(string)
使用POST请求,发送请求到服务器
setRequestHeader()
添加一个键值对到头信息
XMLHttpRequest 对象属性
属性
描述
onreadystatechange
定义了一个函数的调用,当readyState属性改变
readyState
XMLHttpRequest状态.
0: 请求未初始化
1: 服务器连接建立
2: 收到请求
3: 处理请求
4: 请求完成并响应就绪
responseText
将响应数据作为字符串返回
responseXML
将响应数据作为xml返回
status
返回请求的状态号
200: "OK"
403: "禁止"
404: "未找到"
statusText
返回状态文本 (例如: "OK" 或者 "Not Found")