我不想在本地托管另外一个jquery lib再创建一个插件。我正试图从谷歌的CDN加载它,但我得到了这个例外:
拒绝加载脚本“http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js”,因为它违反了以下内容安全策略指令:“script-src” self'chrome-extension-resource:“。
我该如何解决?
答案 0 :(得分:5)
如果要从Google的CDN加载jQuery,则必须将以下内容安全规则添加到清单文件中。
...
"content_security_policy": "script-src 'self' https://*.googleapis.com; object-src 'self'",
...
欲了解更多信息,请阅读Sirwan Afifi已经提供的官方文档,特别是关注CSP specification和article on HTML5 rocks的链接。
答案 1 :(得分:0)
http://developer.chrome.com/extensions/contentSecurityPolicy.html
<强>&GT;仅加载本地脚本和对象资源
脚本和对象资源只能从扩展名中加载 包裹,而不是来自网络。这可以确保您的扩展 只执行你特别批准的代码,防止 主动网络攻击者恶意重定向您的请求 资源。
所以,你应该下载jquery文件并将其包含在你的包中:
<!doctype html>
<html>
<head>
<title>My Awesome Popup!</title>
<script src="jquery.min.js"></script>
</head>
<body>
<button>Click for awesomeness!</button>
</body>
</html>