Javascript ajax 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

我有一个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 (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函数时,它将退出