我为特定网站写了一个chrome扩展程序。如果已安装扩展程序并且我导航到该网站" example.com",我的扩展程序将调用以下方法:
var search="john";
$.get("https://www.example.com/complete/search?q="+search, function (data) {
console.log(data);
});
这很好用。
现在我必须在该扩展程序的options-page中调用相同的方法。当我这样做时,我收到以下错误:
XMLHttpRequest无法加载 https://www.example.com/complete/search?q=John。没有 '访问控制允许来源'标题出现在请求的上 资源。起源' http://localhost'因此不允许访问。
我理解为什么会发生这种情况,但必须找到解决这个问题的方法。我的想法是触发Extension-Script来调用该方法,然后将结果返回到选项页面。我希望,chrome.runtime.sendMessage()在这里没有帮助。
毋庸置疑:该域名不是由我托管,因此我无法更改标题。
答案 0 :(得分:1)
错误表明它的不是实际的选项页面:您通过本地网络服务器(来源:http://localhost/)而不是通过本地网络服务器(可能是意外)打开它打开包含扩展名的页面。
options.html
)添加到您的扩展程序文件夹"options_page": "options.html"
或更好with options_ui
chrome://extensions
或您的扩展程序按钮的上下文菜单(如果有的话)