我正在使用加載項sdk構建Firefox附加組件。我需要做一個HTTP請求到某個頁面,我想處理連接超時,但無法找到任何東西在api:https://addons.mozilla.org/en-US/developers/docs/sdk/latest/modules/sdk/request.htmlfirefox addon-sdk:處理http請求超時
我實際上看是一個回調,如果客戶端不能連接到服務器。
有沒有辦法做到這一點?
我正在使用加載項sdk構建Firefox附加組件。我需要做一個HTTP請求到某個頁面,我想處理連接超時,但無法找到任何東西在api:https://addons.mozilla.org/en-US/developers/docs/sdk/latest/modules/sdk/request.htmlfirefox addon-sdk:處理http請求超時
我實際上看是一個回調,如果客戶端不能連接到服務器。
有沒有辦法做到這一點?
當請求被認爲是爲網絡完成時,SDK請求將始終調用onComplete
。這意味着在任何情況下調用onComplete
,無論請求是返回錯誤還是成功。
爲了檢測你有哪些錯誤,您需要檢查響應對象的property "status"(response.status
)(將傳遞給onComplete
函數對象)。它包含請求的狀態碼。要查看狀態代碼,請考慮list on the mozilla developer network。如果響應狀態爲0,則請求完全失敗,並且用戶可能處於脫機狀態,或者無法訪問目標。
超時要麼是一個狀態代碼504或0的實施將是類似:
var Request = require("sdk/request");
Request({
url: "http://foo.bar/request.target",
onComplete: function(response) {
if(response.status==0||response.status==504) {
// do connection timeout handling
}
// probably check for other status codes
else {
// assume the request went well
}
}
}).get();
我個人使用驗證功能的請求對象上,它返回我一個數取決於是否我收到了正確的迴應,來自Web服務器的錯誤或連接問題(4xx和0狀態碼)。