2012-05-31 166 views
1

我想創建自己的jQuery中的AJAX方法的版本,看看它是如何工作的:阿賈克斯類的Javascript工作不

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功能,不過,因爲它永遠不會打印出「測試」。到底是怎麼回事?

編輯:下面是一個使用示例:var ex = new ajax("www.fake.com/api/item/1/", "GET");

+1

您能舉一個用法示例嗎? – Widor

回答

3

的處理程序被調用onreadystatechange,不只是onreadystate

(這是一個細節),你也應該測試status