错误:内容安全策略:页面的设置阻止了资源的加载

Bra*_*Ham 4 html javascript firefox-addon-webextensions

我一直在尝试将我在 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”).
Run Code Online (Sandbox Code Playgroud)

我确定我只是没有正确执行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"
  }
}
Run Code Online (Sandbox Code Playgroud)

小智 5

默认情况下,扩展无法从 Internet 加载脚本或其他对象资源。您的扩展程序使用的所有 CSS 和 JavaScript 内容都应该是扩展程序包的一部分。

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

可以稍微放宽这些限制,但通常应该避免这种情况——如果用户无法访问 Internet,或者如果他们位于限制性防火墙之后,则从远程服务器加载资源将使您的扩展无法正常工作。此外,addons.mozilla.org 不会接受执行远程托管 Javascript 的插件

  • @Xan,虽然您可以在技术上放宽政策,但如果您打算拥有由 [AMO](https://addons.mozilla.org/en-US/firefox/) 托管的 WebExtension(“正常”分布Firefox 扩展的方法),您使用的任何 JavaScript 都应包含在扩展包中。任何此类公共库都应与可供下载的副本完全匹配。在审核过程中将检查它们是否匹配。如果您从外部资源加载 JavaScript,则不太可能通过在 AMO 上托管的审核。 (2认同)