我正在网站A 的网页上部署< iframe>
,作为在上其他地方的复杂网页上显示片段的快速简单方法网站A :
< iframe src =“http://site-a.com/complex-page/”>< / iframe>



 网站A 上的< iframe>
中没有显示任何内容>。
http://浏览器中的site-a.com/complex-page /
,页面显示正常。< iframe>
进行了测试 http://site-b.com/complex-page/
作为来源,< iframe>
显示外部页面(外部)站点B ,正如所料。 http://site-a.com/complex-测试了< iframe>
第2页
作为来源,再次,< iframe>
中没有显示任何内容。所以...这显然与网站A 有关,如果< iframe> >网站A 未在网站A ,上显示多个网页中的任何一个,但它在网站B 上显示多个网页中的任意一个 。


这显然不是同源问题 - 网站A 是与网站A 相同的来源。


那么阻止在网站A 上显示外部网页的原因是什么?


另外:


如果我右键点击>该框架>查看框架源
然后我可以查看< iframe>
...加载的文档的HTML源代码...但是我添加到的任何内容或样式文档,没有任何显示。
这表明< iframe>
成功访问了该页面,但后来(由于某种原因)无法显示它。
支持信息: 该网站是使用PHP服务器端构建的使用HTML5,CSS3和Javascript客户端。

答案 0 :(得分:1)
一旦我明白我所遇到的是X-Frame-Options
问题,这个问题就更容易解决了。
显然X-Frame-Options
可以有三个值:
DENY
SAMEORIGIN
ALLOW-FROM
[URI] X-Frame-Options
文件中设置 .htaccess
。
在这种情况下,我需要将以下行添加到我的.htaccess
文件中:
# HEADERS
<ifModule mod_headers.c>
Header set X-Frame-Options "SAMEORIGIN"
</ifModule>
感谢此页:
[iframe] X-Frame-Options:网站不允许框架
http://techdc.blogspot.co.uk/2015/04/iframe-x-frame-options-website-does-not.html