代码:
//Method POST/GET 请求方式.
//url 请求的地址.
//callback 回调函数,回调函数有2个参数 第一个是返回结果,第二个是参数对象.
//data POST请求提交的数据.GET方式时,请传 null
//obj 回调里面的第二个参数,防止一步时,对象不同步. 不需要时,请传 null
//Asyn true/异步请求,false/同步请求
function XmlReqestAsynchronous(Method, url, callback, data, obj, Asyn) {
var request;
try {
//浏览器兼容
request = window.ActiveXObject ?
new ActiveXObject("Microsoft.XMLHTTP"):
new XMLHttpRequest();
}
catch (trymicrosoft) {
request = false;
}
if (request) {
if (Asyn) Asyn = true;
else Asyn = false;
request.open(Method, url, Asyn);
request.onreadystatechange = function () {
//判断加载成功时
if (request.readyState == 4 && request.status == 200) {
//如果xml对象不为空 则返回xml对象
if (request.responseXML && request.responseXML.childNodes.length > 0)
callback(request.responseXML, obj);
//xml对象为空 则判断文本是否为空
else if (request.responseText)
callback(request.responseText, obj);
//没有内容返回 直接执行回调函数
else callback(null, obj);
}else {
alert('错误:'+request.status);
}
};
if (!data) data = null;
request.send(data);
}
else {
alert('浏览器不支持XmlHttpRequest功能.');
}
}