XMLHttpRequest(XHR)是浏览器里已定义的对象,它是AJAX技术的核心组成部分,JavaScript通过它和服务器通讯,并通过它来解析从服务器传回来的XML文件。XMLHttpRequest最早由微软作为一个 ActiveX对象实现,之后其它流行的浏览器步其后尘都实现了XMLHttpRequest。
·顺序
–open(string url,string asynch): 打开请求页面
–send(string): 发送数据
–onreadystatechange: 状态改变,回调函数
–status: HTTP 处理状态
–responseXML: 返回的 XML DOM
–responseText: 返回的文字內容
·XHR 支持以下浏览器
–IE 5.0+
–Mozilla 1.0+
–Safari 1.2
–Konqueor
–Opera 8.0
·但不同的浏览器 XHR 建立方式不同
–IE: ActiveX
–Others: JavaScript
function httpRequest(reqType,url){
if(window.XMLHttpRequest){ // Mozilla, Opera, Safari, …
request = new XMLHttpRequest();
} else if (window.ActiveXObject){ // IE
request=new ActiveXObject("Msxml2.XMLHTTP");
if (!request){
request=new ActiveXObject("Microsoft.XMLHTTP");
}
}
if(request){
…
} else {
alert("Your browser does not permit the use of all "+
"of this application's features!");
}
}
用户输入触发XHR
// 建立 XHR
request = new XMLHttpRequest();
// 设定回调函数
request.onreadystatechange=handleResponse;
// 打开链接
request.open("GET","http://abc.com",true);
// 传输资料
request.send(null);
接收数据后立刻更新用户访问界面
function handleResponse() {
// 检查 XHR 状态
if(request.readyState == 4){
// 检查 http 状态
if(request.status == 200){
// 读取返回的 XML 资料
var doc = request.responseXML;
// 取得网页上需要更新的 node 位置
var node = document.getElementById(“resp");
// 向该 node 写入內容
node.innerHTML =
doc.documentElement.childNodes[0].nodeValue;
}
}
}
Yt剉鶺,g俰鮛<