【问题标题】:Blocked a frame with origin how to fix用原点阻止了一个框架如何修复
【发布时间】:2014-12-15 14:43:07
【问题描述】:

阻止来源为https://xxxx 的框架访问来源为https://xxx 的框架。协议、域和端口必须匹配。

我需要此设置才能工作,并且我可以访问这两个域(2 个不同的域)。

我怎样才能摆脱这个?

我尝试将php-header 放在放置iframe 的页面上:

header("Access-Control-Allow-Origin: https://domain_the_iframe_is_placed");

还有在 htaccess 中:

<IfModule mod_headers.c>
    Header set Access-Control-Allow-Origin "*"
</IfModule>

我能做什么?

这是 iframe 页面,它位于另一个域 (y.com) 上,但放在 x.com 上

  parent.document.getElementById('accoxxation').value='<?=$_POST['account_verification']?>';
  parent.document.getElementById('accxx').value='<?=$_POST['account_number']?>';
  parent.document.getElementById('accxxonth').value='<?=$_POST['account_month']?>';
  parent.document.getElementById('accxxxr').value='<?=$_POST['account_year']?>';

  parent.document.getElementById('gatewayProcessor').submit();

【问题讨论】:

    标签: javascript php .htaccess


    【解决方案1】:

    allow-origin 将允许称为 CORS 的服务器请求,而不是帧间连接。尝试使用专门为此目的设计的窗口消息传递。
    示例:

    家长:

    myFrame.contentWindow
            .postMessage("STRING", myFrame.src);
    

    我的框架:

    window.addEventListener("message", function (event) {
        // Security: Validate message origin
        if (event.origin !== myVerifiedOrigin) {
            return;
        }
        console.log(event.data);
    });
    

    【讨论】:

    • addEventListener 与我给出的示例有什么关系?你能举个例子说明你的意思吗?
    • 应该是反向的。从不同域上的 iFrame 向我这边 (parent.window) 进行通信
    • 谢谢,已接受您的回答并发布解决方案。
    【解决方案2】:

    禁止从其他来源访问帧。您可以在浏览器设置的深度进行更改。我不认为这是个好主意。是安全问题。如果您可以控制这两个来源,则可以使用 postMessage 来传达抛出帧。

    Tutorial

    【讨论】:

      【解决方案3】:

      默认情况下你不能/不应该这样做,但是根据这个网站

      http://javascript.info/cross-window-communication

      这是“同源”政策中的一个小例外。

      如果windows共享同一个二级域,例如john.site.com、peter.site.com和site.com(所以它们共同的二级域是site.com),它们可以被视为来自“同源”。

      为使其正常工作,所有此类页面(包括来自 site.com 的页面)都应运行代码:

      document.domain = 'site.com';
      

      就是这样。现在他们可以不受限制地进行交互。同样,这仅适用于具有相同二级域的页面。

      【讨论】:

        猜你喜欢
        • 2016-08-11
        • 2014-11-09
        • 1970-01-01
        • 2013-05-19
        • 1970-01-01
        • 1970-01-01
        • 2020-12-11
        • 2014-10-16
        • 2015-07-11
        相关资源
        最近更新 更多