我正在使用加载项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状态码)。