我自己编写了一个脚本,当我访问它时,该脚本使用jQuery Ajax函数从网页记录一些数据。它需要一些信息并将其发送到我的本地Apache主机以保存在文本文件中。
它已经工作了几个月,但是我现在收到一个与此同源策略相关的错误(我知道它是如何工作的及其目的),并且浏览器现在正在结束脚本执行,并显示以下消息:
The page at https://www.website.com/ displayed insecure content from
http://127.0.0.1:8081/whatever.php
其次是:
Refused to connect to connect 'http://127.0.0.1:8081/whatever.php?arguments=1' because it
violates the following Content Security Policy directive: "connect-src
https://www.website.com/* https://*.website.com/
https://*.website.net xhr: error: SECURITY_ERR: DOM Exception 18
错误消息上的最后一个域用红色显示。一个令人好奇的细节是,在Tampermonkey上的JavaScript代码上,我具有这些域的
@includes
,但没有红色标记的域。我已经添加并测试了它,但是没有用。我在Google上找到的所有讨论都告诉您如何禁用此政策,但是如果您要开发扩展程序,则不是我的情况。
这段代码将只在我的机器上运行,我无意以任何方式分发它,因此即使解决方案是直接更改浏览器配置,也可以采用任何解决方案。
如果这有用,我正在使用Windows 7。
最佳答案
Tampermonkey Beta fixed its GM_xmlHttpRequest
to be independent from the page's CSP.
不幸的是,它无法解决jQuery AJAX请求,因为它不知道将要联系哪些网站。
如果您要访问的页面是 Facebook ,则为the CSP is sent only to Chrome 21-23, but not Chrome 24.,因此您可以使用Tampermonkey's @user-agent
tag模拟Chrome 24。
关于javascript - Google Chrome浏览器,同源策略杀死Tampermonkey脚本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13485020/