Iframe数据不会从一个子域加载,但可以从另一个子域正常工作

时间:2016-03-10 13:11:57

标签: html iframe

我试图找出为什么iframe不会加载到特定页面上。

我正在使用的代码:

<iframe src="http://example.mywebsite.com" width="100%" height="100%" frameborder="0" ></iframe>

我从http://frameloader.mywebsite.com

加载它

不知怎的,如果我在http://temploader.mywebsite.com尝试同样的事情,那就行了。

我尝试使用其他浏览器/计算机重新加载/刷新Cookie /但是在所有情况下,它都适用于temploader但不适用于frameloader。

有没有人知道为什么这可能不起作用?我已经在这几天里破坏了我的大脑和互联网。

1 个答案:

答案 0 :(得分:0)

同源政策适用于:

  1. 协议(例如https://

  2. 子域(例如https://frameloader

  3. 域名(例如https://frameloader.mywebsite.com

  4. 端口(例如https://frameloader.mywebsite.com:80

  5. 以上所有内容必须匹配才能符合Same Origin Policy。 幸运的是,您的情况有一个解决方法。将以下内容添加到两个位置:

    document.domain = 'mywebsite.com'
    

    阅读Iframe cross domain JavaScript callsThe document.domain exception了解详情。