|
|
1
11
正如您发现的,在内容脚本中,不能执行任何跨域XHR。您必须在扩展页面中执行这些操作,例如后台、弹出窗口,甚至是选项。 有关内容脚本限制的详细信息,请参阅: http://code.google.com/chrome/extensions/content_scripts.html 有关xhr限制的更多信息,请参阅: http://code.google.com/chrome/extensions/xhr.html |
|
|
2
5
我已经解决了部分问题,实际上大部分问题。首先,正如布伦南和我昨天提到的,我需要在manifest.json中设置权限。
为每个域授予权限并不理想,但是由于可以从任何域承载图像,因此必须这样做,而且我必须防范XSS。 另一个问题是,Chrome确实阻止了Content-Scripts部分中的任何内容进行Ajax调用,并无声地失败。但是,如果您有后台页面,则不存在这样的限制。这个页面可以进行它想要的任何Ajax调用,而chrome有一个API,允许脚本打开一个端口并将请求传递到后台页面。有人写了一个脚本 XHRProxy 作为解决方法,我修改了它以获得适当的响应头。它起作用了! 我现在唯一的问题是如何让脚本等待调用结果在事件中设置,而不是立即返回。 |
|
|
3
5
检查您的清单文件。扩展是否具有访问该URL的权限? 如果它对您的第二个问题(或其他任何问题)有帮助: 您可以向后台页面发送请求,如下所示:
变量
在后台页面上,您可以添加一个侦听器:
通过这个,您可以将来自Ajax请求的响应传递回内容脚本,并在那里做任何您想做的事情。 |
|
|
4
2
公认的答案过时了。 Content scripts can now make cross-site XMLHttpRequests just like background scripts! 清单中需要允许相关的URL:
您还可以使用以下表达式:
以获取更多常规权限。 |
|
|
ThePenguin · Chrome重复控制台条目 2 年前 |
|
|
SwiftyQA · 在随机持续时间内点击Chrome扩展的按钮 2 年前 |
|
|
OrionGL · 本应自动更新的范围输入在手动设置后停止更新 2 年前 |
|
|
Grasper · replaceAll函数禁用某些站点元素 2 年前 |