我为一个特定的网站写了一个Chrome扩展。如果安装的延伸和我浏览到该网站“example.com”,我的分机呼叫以下方法:从选项页面调用Chrome扩展方法?
var search="john";
$.get("https://www.example.com/complete/search?q="+search, function (data) {
console.log(data);
});
这工作得很好。
现在我必须从该扩展的选项页面中调用相同的方法。当我这样做,我收到以下错误:
XMLHttpRequest cannot load https://www.example.com/complete/search?q=John . No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin ' http://localhost ' is therefore not allowed access.
我理解为什么会这样,但必须找到一个办法来解决这个问题。我的想法是触发扩展脚本来调用该方法,然后将结果返回到选项页面。我期望,chrome.runtime.sendMessage()在这里没有帮助。
不用说:该域名不是由我托管的,所以我不能只更改标题。
天哪。你是对的。我无意中在本地打开了这个文件。但是,期望在我的选项页面上出现相同的行为,因为这不是www.example.com。 – 2015-02-05 22:42:01
从安全角度来看,背景页面和选项页面是相同的(特权源'chrome-extension:// ...')。这意味着在清单中定义的主机权限[覆盖XHR的CORS](https://developer.chrome.com/extensions/xhr#requesting-permission)。 – Xan 2015-02-05 22:45:43