Javascript ajax onreadystatechange函数
我有一个ajax oop脚本,它工作得很好,但没有回调onreadystatechange函数。下面是代码=>Javascript ajax onreadystatechange函数,javascript,ajax,Javascript,Ajax,我有一个ajax oop脚本,它工作得很好,但没有回调onreadystatechange函数。下面是代码=> function AjaxConstruct(method,file,params){ this.method = method; this.file = file; this.params = params; this.http = false; } AjaxConstruct.prototype.ajax = function(){ if
function AjaxConstruct(method,file,params){
this.method = method;
this.file = file;
this.params = params;
this.http = false;
}
AjaxConstruct.prototype.ajax = function(){
if (window.XMLHttpRequest){
this.http = new XMLHttpRequest();
} else {
this.http = new ActiveXObject("Microsoft.XMLHTTP");
}
if (this.http){
this.http.open(this.method,this.file,true);
if (this.method==="POST"){
this.http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
}
this.http.send(this.params);
this.http.onreadystatechange = function(){
if (this.http.readyState==4 && this.http.status==200){
alert("yeah");
}
};
}
};
它不回调onreadystatechange匿名函数,如何解决?谢谢:)
像这样调用方法=>
var ajax = new AjaxConstruct("POST","filename","params");
ajax.ajax();
但是onreadystatechange没有调用:(我认为调用了回调,但是访问
this.http.readyState
将抛出一个错误,因为在回调中,this
没有引用您的实例
查看控制台中的错误
只需使用this.readyState
或将XMLHTTPRequest
对象分配给一个局部变量,并使用该对象而不是this.http
了解更多信息。您如何知道它没有被调用?我想是的,但是访问
this.http.readyState
会抛出一个错误,因为在回调中,this
没有引用您的实例。请查看控制台中的错误。它没有被调用,因为它正在向mysql数据库发送参数,并且一切正常g除了警报结果,我不知道如何解决它。这就是我要说的:访问this.http.readyState
将导致错误,因此警报不会显示,但函数仍将被调用。只需使用this.readyState
等或将XMLHTTPRequest
对象分配给局部变量,然后使用t而不是this.http
。现在我已经用fire bug进行了调试,当我看到它将要使用onreadystatechange函数时,它将退出