1

我正在尝试在 Jquery 中创建自己的 ajax 方法版本,以查看它是如何工作的:

function ajax(url, method) {
    var self = this;
    this.xhr = new XMLHttpRequest();
    this.xhr.onreadystate = function() {
        self.xhrHandler();
    }
    this.xhr.open(method, url, true);
    this.xhr.send();
}

ajax.prototype.xhrHandler = function() {
    if (this.xhr.readyState == 4) {
        console.log(this.xhr.responseText);
    }
    console.log("test");
}

但是,它永远不会进入 xhrHandler 函数,因为它永远不会打印出“test”。到底是怎么回事?

编辑:这是一个使用示例:var ex = new ajax("www.fake.com/api/item/1/", "GET");

4

1 回答 1

3

处理程序被调用onreadystatechange,而不仅仅是onreadystate.

而且(这是一个细节),您还应该测试status.

于 2012-05-31T17:10:10.300 回答