我自己编写了一个脚本,当我访问它时,该脚本使用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/

10-11 06:04