带有清单版本2的CORS Chrome扩展程序

时间:2012-09-10 18:32:12

标签: google-chrome-extension

在编写Google Chrome扩展程序时是否可以使用CORS?

我看到了这个, http://developer.chrome.com/extensions/contentSecurityPolicy.html

我尝试将其插入清单, “content_security_policy”:“script-src'self'https://twitter.com/; object-src'self'”,

但ajax请求失败了 XMLHttpRequest无法加载https://twitter.com/。原始chrome-extension:// olimhkjfpndfhdopbneamnekfalckinc不允许使用Access-Control-Allow-Origin。

3 个答案:

答案 0 :(得分:18)

要将cross-origin Ajax从您的扩展程序启用到Twitter,您只需将Twitter列为清单中的主机权限:

...
"permissions": [
    "*://*.twitter.com/*"
],
...

答案 1 :(得分:5)

从Chrome 73开始,跨站点请求被阻止。 (即使您的权限属性中包含主机。) 有些网站似乎可以畅通无阻,但googleapis.com却没有。

您必须在后台页面中发出请求。 在此处查看推荐的开发人员操作部分的步骤2:

https://www.chromium.org/Home/chromium-security/extension-content-script-fetches

如果您执行类似console.log()的操作,请在chrome的扩展程序管理器中单击扩展程序方框中的“检查视图背景页面”链接,您将获得一个单独的开发工具窗口,用于处理背景页面中发生的所有情况。

这真的让我呆了几天。希望它可以节省一些时间。

答案 2 :(得分:0)

如有可能,将标头 Access-Control-Allow-Origin:* 添加到远程服务器的响应中。 这是各种后端服务器的教程:add CORS support to backend server