【问题标题】:Error: Content Security Policy: The page’s settings blocked the loading of a resource错误:内容安全策略:页面的设置阻止了资源的加载
【发布时间】:2016-10-21 20:41:40
【问题描述】:

我一直在尝试将我用 jQuery/HTML 制作的简单程序移动到 Firefox WebExtension 以便于部署。我得到的错误是:

Content Security Policy: The page’s settings blocked the loading of a resource at https://code.jquery.com/jquery-1.12.4.js (“script-src moz-extension://ef8f1295-1912-4912-ab2e-121053b6781a”).

我确定我只是没有正确地处理 manifest.json 文件,但对于我的一生,我不知道在哪里:

{
  "description": "Makes tasks from different underwriters uniform",
  "manifest_version": 2,
  "name": "Task Creator",
  "version": ".5",
  "permissions": [
    "http://*/*", "tabs", "https://*/*"
  ],

  "icons": {
    "48": "icons/page-48.png"
  },
  "web_accessible_resources": [
    "style/popUpStyle.css",
    "script/popUpTask.js",
    "script/logicTaskFiller.js",
    "js/autosize.js",
    "style/https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css",
    "js/https://code.jquery.com/jquery-1.12.4.js",
    "js/https://code.jquery.com/ui/1.12.1/jquery-ui.js"
  ],

  "background": {
    "scripts": ["background.js"]
  },

  "browser_action": {
    "default_icon": "icons/page-32.png"
  }
}

【问题讨论】:

  • js/https://code.jquery.com/jquery-1.12.4.js 是无效的文件路径。使用js/jquery-1.12.4.js 并确保文件在那里。
  • 我不能从外部网站加载 jquery 吗?
  • 你可以手动完成,但不能通过 manifest.json
  • 很高兴知道,谢谢....由于您在 cmets 中,我无法真正将您标记为答案,呵呵
  • "我不能从外部网站加载 jquery 吗?"你可以。你应该?有什么改进?

标签: javascript html firefox-addon-webextensions


【解决方案1】:

By default, extensions cannot load scripts, or other object resources, from the Internet。您的扩展使用的所有 CSS 和 JavaScript 内容都应该是扩展包的一部分。

(本文档来自 Chrome,但完全相同的政策适用于 Firefox WebExtensions。)

可以稍微放宽这些限制,但通常应该避免这种情况 - 如果用户无法访问 Internet,或者如果他们位于限制性防火墙后面,则从远程服务器加载资源会使您的扩展程序无法正常工作.另外,addons.mozilla.org will not accept addons which execute remotely hosted Javascript.

【讨论】:

  • 如上所述,这是错误的,因为您可以放宽政策。
  • @Xan,虽然您可以在技术上放宽政策,但如果您打算拥有由 AMO 托管的 WebExtension(Firefox 扩展的“正常”分发方法),您使用的任何 JavaScript应该包含在扩展包中。任何此类通用库都应与可供下载的副本完全匹配。他们确实匹配将在审查过程中进行检查。如果您从外部资源加载 JavaScript,则不太可能通过 AMO 托管审核。
  • 我不反对。但原来的说法仍然不正确,现在更正了。
  • @Makyen 这也是一个好点!我已经为此添加了一条注释。
猜你喜欢
  • 2016-09-14
  • 2016-01-31
  • 2020-12-17
  • 1970-01-01
  • 2021-02-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多