firefox-addon - Firefox 插件 SDK : handle http request timeout

标签 firefox-addon firefox-addon-sdk

我正在使用附加 sdk 构建一个 Firefox 附加组件。我需要向某个页面发出 http 请求,我想处理连接超时但在 api 中找不到任何内容:https://addons.mozilla.org/en-US/developers/docs/sdk/latest/modules/sdk/request.html

我实际上正在寻找的是一个回调,以防客户端无法连接到服务器。

有没有办法实现这一目标?

最佳答案

SDK 请求将始终调用 onComplete ,当请求被认为对网络完成时。这意味着 onComplete在任何情况下都会被调用,不管请求是返回错误还是成功。

为了检测您遇到了哪个错误,您需要检查 Response 对象(传递给 onComplete 函数的对象)property "status" ( response.status )。它保存请求的状态代码。要查找状态代码,请考虑 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 状态代码)。

关于firefox-addon - Firefox 插件 SDK : handle http request timeout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15810790/

相关文章:

node.js - Firefox 插件中的 Socket.io

javascript - 为什么我的 page-mod contentStyle font-face 规则在 Firefox Addon 中不起作用?

jquery - 如何在 Firefox 插件中使用 jQuery?

firefox-addon - 像素完美( Firebug 插件)替代品

javascript - 将 Chrome 扩展移植到 Firefox

javascript - Firefox Addon SDK - pageMod 更新 contentScriptOptions?

firefox - Firefox 的完全特权控制台

javascript - 在较新版本的 Firefox 中,是否仍然可以覆盖网页的 JS 函数?

firefox-addon - 拦截/处理 mime 类型/文件

web-services - 设置 Content-Type 以从 Firefox 进行测试