40

当脚本尝试从不同的来源访问框架时,Chrome 会阻止它并抛出异常

“未捕获的安全错误:阻止具有源“提供程序域”的帧访问具有源“mydomain”的帧。协议、域和端口必须匹配”。

在谷歌浏览器中进行了一些更新后,我收到了这个错误。有什么建议么?

4

2 回答 2

24

框架和/或窗口之间的直接 Javascript 调用只有在它们符合同源策略时才被允许。如果您的窗口和 iframe 共享一个共同的父域,您可以将一个或两个设置document.domain为“域下限”,以便它们可以通信。否则,您需要研究postMessage() API之类的东西。

于 2013-11-07T13:40:49.100 回答
5

这是一个安全更新。如果攻击者可以修改 Web 服务器中的某些文件(例如 JS 文件),他可以使每个加载的页面都下载另一个脚本(例如键盘记录您的密码或窃取您的 SessionID 并将其发送到他自己的服务器)。

为了避免它,浏览器检查同源策略

您的问题是浏览器正在尝试使用位于另一个域(或子域)上的脚本(使用 Ajax 请求)加载某些内容。为了避免它(如果它在您自己的网站上),您可以:

  • 将元素复制到您自己的服务器上(但它将是静态的)。
  • 您可以更改您的 HTTP 标头以接受跨域内容。有关详细信息,请参阅Access-Control-Allow-Origin 文档
于 2013-11-07T15:07:28.073 回答