52,797
社区成员
发帖
与我相关
我的任务
分享
function Ajax(callback) {
this.xmlreq = this.getXMLRequest();
this.callback = callback;
}
/*
* 获取XMLHttpRequest对象
*/
Ajax.prototype.getXMLRequest = function() {
var xmlHttpRequest = null;
if (window.XMLHttpRequest) {
xmlHttpRequest = new XMLHttpRequest();
} else if (typeof ActiveXObject != "undefined") {
xmlHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
}
return xmlHttpRequest;
};
/*
* 发送请求
*/
Ajax.prototype.sendRequest = function(url, params, HttpMethod) {
if (!HttpMethod) {
HttpMethod = "GET";
}
if (this.xmlreq) {
this.xmlreq.onreadystatechange = this.selfCallback;
this.xmlreq.open(HttpMethod,url,true);
this.xmlreq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
this.xmlreq.send(params);// 请求是发送成功的,后台有日志打印
}
// 这里打印的是[object]
alert(this.xmlreq);
};
/*
* 回调函数
*/
Ajax.prototype.selfCallback = function() {
// 这里打印的是[undefined],然后就报错了。。。。
alert(this.xmlreq);
var ready = this.xmlreq.readyState;
var data = null;
if (ready == 4) {
data = this.xmlreq.responseXML;
} else {
data = "loading... " + ready;
return;
}
this.callback(data);
};
this.xmlreq.onreadystatechange = (function(o) {
return function() {
o.selfCallback();
}
})(this);