2013-07-25 39 views
0

尋找readyState === 4status === 200是如此普遍,我相信有一個爲它開發的捷徑,但我不記得它。傳遞響應(4)的XMLHttpRequest的快捷方式?

這是一種語言shorcute,即,你不需要一個圖書館。

if (this.readyState === 4) { 
    if (this.status === 200) { 
     config_ajax.callback(xhr.responseText); 
    } 
} 

什麼是檢查這種「情況」的「快捷方式」?

+0

有很多很多輕量級JavaScript庫抽象這個過程。 –

+1

除非自己封裝它,否則沒有捷徑,或者使用'load'事件而不是'onreadystatechange'事件。 – Sebas

+0

http://stackoverflow.com/questions/7870704/xmlhttprequest-onload-property?rq=1 –

回答

3

庫之外有一個快捷方式。使用一個if語句。

if (this.readyState === 4 && this.status === 200) { 
    config_ajax.callback(xhr.responseText); 
} 

注:不能切換順序if語句,因爲你不能獲得請求的狀態,直到readyState的得到至少2。所以,如果你把狀態檢查第一,你的瀏覽器將拋出第一個readyState的,這是錯誤的0

來源:MDN

0

當使用onload事件偵聽器(而不是onreadystatechange,你可以簡單地做:

if (this.status === 200) { 
    config_ajax.callback(xhr.responseText); 
} 

as onload only fires when readyState === 4