0

我在 manifest.json 中使用以下行制作了 chrome 扩展,以便我可以通过 ajax 请求获取数据。

"content_security_policy": "script-src 'self' http://localhost; object-src 'self'",

我想用我的实时站点测试扩展,所以我将其更改为:

"content_security_policy": "script-src 'self' http://www.example.com; object-src 'self'",

但是现在当我启动 chrome 时扩展程序没有初始化。

4

2 回答 2

1

要制作跨域 XHR,您不需要关心 CSP。您需要在清单中添加的是您需要访问的那些主机的主机权限。阅读https://developer.chrome.com/trunk/extensions/xhr.html了解更多信息。

另一方面,如果您的扩展从外部 Web 服务器加载脚本 (<script src="..."></script>),则您必须了解 CSP。首先,托管脚本的服务器必须是 HTTPS。然后,按照https://developer.chrome.com/trunk/extensions/contentSecurityPolicy.html#relaxing-remote-script中的描述在 CSP 中列出它。

禁止在“script-src”中将 HTTP 源列入白名单,以防止中间人攻击和其他安全问题,以免您的扩展程序加载。

于 2013-02-24T06:38:24.250 回答
0

您是否添加了权限,如果没有,请尝试此操作,希望它会起作用

,
 "permissions": [
   "http://www.example.com/*", 
   "tabs"
 ],
"content_scripts": [
  {
    "matches": [
        "http://www.example.com/*"
    ],
    "js": [
        "js/myScript.js"
    ]
  }
]
于 2013-02-23T18:33:41.370 回答