【问题标题】:Firefox add-on sdk if failing AJAX requests如果 AJAX 请求失败,则使用 Firefox 附加 sdk
【发布时间】:2012-10-30 21:53:21
【问题描述】:

请注意以下代码:

    $.ajax({
     type: "POST",
     url: loginURL,
     data: jsonArray,
     async: true,
     success: function(data, status){
         alert(status);
     },
     error: function(data, status){
         alert(status + " 1");
     }
});

每次都会抛出错误情况,但是我打开了提琴手,并且我可以正常接收来自服务器的数据。我正在将面板附加到小部件。在面板中加载的 HTML 中,我包含了最新的 jquery 和登录 javascript 文件。

【问题讨论】:

  • 另外,同样的代码也适用于 Chrome 扩展程序。

标签: jquery firefox-addon-sdk


【解决方案1】:

其实你可以在 Firefox 扩展的内容脚本中进行跨域请求。检查此链接:

https://developer.mozilla.org/en-US/Add-ons/SDK/Guides/Content_Scripts/Cross_Domain_Content_Scripts

您需要像这样在 package.json 中明确域权限:

"permissions": {
  "cross-domain-content": ["http://datapoint.metoffice.gov.uk"]
}

【讨论】:

    【解决方案2】:

    [编辑:我更新了链接]

    这是在内容脚本中吗?内容脚本目前无法发出跨域请求(我认为可以使用 chrome 扩展)。您可以做的是使用请求模块在 main.js 中发出请求:

    https://addons.mozilla.org/en-US/developers/docs/sdk/latest/modules/sdk/request.html

    从 SDK 版本 1.12(将在 6 周内发布)起,您能够在内容脚本中发出跨域请求,从而使此类功能更易于实现。 p>

    【讨论】:

    • 谢谢。我正在向主请求页面传递一条消息并将响应传递回内容脚本。这有点多,但它有效。
    • 旧链接已损坏并已更新。请检查是否正确。
    • 这个问题的第二个答案是最新的。
    猜你喜欢
    • 2010-10-10
    • 2017-04-02
    • 2018-11-30
    • 1970-01-01
    • 2013-01-15
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    相关资源
    最近更新 更多