根据chrome扩展,如果设置了权限,则应允许使用XMLHttpRequest对象的API跨域调用:
扩展可以与源外的远程服务器通信,只要它首先请求跨域许可。
我正在密切关注本教程,但是下面的代码给了我一条错误消息:
XMLHttpRequest无法加载http://www.google.com/search?hl=zh_CN&q=ajax。Access- Control-Allow-Origin不允许使用来源chrome-extension:// bmehmboknpnjgjbmiaoidkkjfcgiimbo。
我不仅允许对google.com的请求,还允许对任何网站的请求,但仍然无法通过。有人可以帮忙吗?
我的清单文件:
{ "name": "The popup", "version": "0.1", "popup": "popup.html", "permissions": [ "http://*/*", "https://*/*", "https://www.google.com/*", "http://www.google.com/*" ], "browser_action": { "default_icon": "clock-19.png", "default_title": "This is title", "default_popup": "popup.html" } }
实际通话:
function sendRequest() { document.write("Sending request"); var req = new XMLHttpRequest(); req.open("GET", "http://www.google.com/search?hl=en&q=ajax", true); req.onreadystatechange = function() { if (req.readyState == 4) { if (req.status == 200) { alert(req.responseText); document.write("OK"); } } }; req.send(); }
两件事情; 您需要确保自己制作的是打包的应用程序/扩展名,而不是托管的。跨源请求不适用于托管应用。假设您固定了该部分,则可能要尝试将以下内容放入您的权限中:http://*/。这是我打包的应用程序中唯一的一个,它确实可以跨源运行,没有任何问题。
http://*/