在编写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。
答案 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