ajax onreadystatechange function

ajax onreadystatechange function

本文关键字:function onreadystatechange ajax      更新时间:2023-09-26

我有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的更多信息。