<iframe>不显示同一网站的网页,但显示其他网站的网页

时间:2017-09-14 19:04:01

标签: php html5 .htaccess iframe x-frame-options

我正在网站A 的网页上部署&lt; iframe&gt; ,作为在上其他地方的复杂网页上显示片段的快速简单方法网站A

&#xA;&#xA;
 &lt; iframe src =“http://site-a.com/complex-page/”&gt;&lt; / iframe&gt;&#xA;  
&#xA;&#xA;

网站A 上的&lt; iframe&gt; 中没有显示任何内容>。

&#xA;&#xA;

疑难解答:

&#xA;&#xA;
    &#xA;
  1. 我检查了 http://浏览器中的site-a.com/complex-page / ,页面显示正常。
  2. &#xA;
  3. 我使用了&lt; iframe&gt; 进行了测试 http://site-b.com/complex-page/ 作为来源,&lt; iframe&gt; 显示外部页面(外部)站点B ,正如所料。
  4. &#xA;
  5. 我使用 http://site-a.com/complex-测试了&lt; iframe&gt; 第2页作为来源,再次,&lt; iframe&gt; 中没有显示任何内容。
  6. &#xA; &#xA;&#xA;

    所以...这显然与网站A 有关,如果&lt; iframe&gt; >网站A 未在网站A 上显示多个网页中的任何一个,但它在网站B 上显示多个网页中的任意一个 。

    &#xA;&#xA;

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

    &#xA;&#xA;

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

    &#xA;&#xA;

    另外:

    &#xA;&#xA;

    如果我右键点击&gt;该框架&gt;查看框架源然后我可以查看&lt; iframe&gt; ...加载的文档的HTML源代码...但是我添加到的任何内容或样式文档,没有任何显示。

    &#xA;&#xA;

    这表明&lt; iframe&gt; 成功访问了该页面,但后来(由于某种原因)无法显示它。

    &#xA;&#xA;
    &#xA;&#xA;

    支持信息: 该网站是使用PHP服务器端构建的使用HTML5,CSS3和Javascript客户端。

    &#xA;

1 个答案:

答案 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