Chrome扩展程序“拒绝加载脚本,因为它违反了以下内容安全策略指令”

我正在尝试创建Chrome扩展程序,但我的JS都没有。 控制台显示此错误:

拒绝加载脚本’ https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js ‘,因为它违反了以下内容安全策略指令:“script-src’self’blob :filesystem:chrome-extension-resource:“。

为什么阻止我的jQuery运行?

您是否在清单JSON文件中允许它。 像这样的东西:

的manifest.json

{ "name": "My Extension", "content_scripts": [{ "js": ["jquery.min.js", "YourJavaScriptFile.js"], "matches": ["http://*/*", "https://*/*"] }] } 

我遗漏了必需的字段,但只是给出了基本的想法。

正如Chome 网站上所述,有一个内容安全策略阻止您的脚本加载远程脚本:

允许通过HTTPS从example.com加载脚本资源的宽松策略定义可能如下所示:

“content_security_policy”:“script-src’self’https://example.com; object-src’self’”

所以在你的情况下, manifest.json应该包含:

  { "name": "My Extension", "manifest_version": 2, "background":{ "scripts": [...] }, "content_security_policy": "script-src 'self' https://example.com; object-src 'self'", } 

好吧,你不能使用CDN for js,你将不得不复制“ https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js ”的内容并创建一个新文件在你的js目录中并将其命名为jquery.min.js并将其中的所有内容粘贴到其中,然后在HTML文件头中删除包含此url的行并使用此代替

  

但请确保这是包含所提及url中所有数据的文件的写入路径

干杯,

内容安全策略是应用程序的另一个安全层。 它允许您定义从中加载任何样式,脚本或数据的所有原点。 对于每个样式,脚本,字体或连接,您需要指定要在应用程序中加载的域。 如果您使用的是另一个域的CDN jQuery,则需要在内容安全策略中指定此域。

如果您不想要这个增加的安全层,并希望从您希望的任何域加载样式或脚本,只需在index.html中添加以下元标记,并确保它位于任何导入之前。

  

这里*是通配符,可以访问任何域。 如果您想要这个增加的安全层,我建议您转到文档 ,该文档非常清楚如何在您的应用程序中指定要导入的所有域

我的HTML文件中有 。 删除脚本标记后,错误消失了。