拒绝在框架中显示网站,因为它的“X-Frame-Options”

Posted

技术标签:

【中文标题】拒绝在框架中显示网站,因为它的“X-Frame-Options”【英文标题】:Refused to display a website in a frame because of its 'X-Frame-Options' 【发布时间】:2013-10-08 21:29:55 【问题描述】:

我正在尝试在仅包含 iframe 的简单 html 页面中显示 Facebook 页面。

这是我的 HTML 代码:

<html>
    <body>
        <iframe src="http://www.facebook.com"></iframe>
    </body>
</html>

我总是在 Google Chrome 的控制台中收到此错误:

拒绝在框架中显示“http://www.facebook.com/”,因为它 将“X-Frame-Options”设置为“DENY”。

顺便说一句,这些 iframe 也有这个问题:

<iframe src="https://mail.google.com/mail/mu/mp/any"></iframe>
<iframe src="http://m.facebook.com"></iframe>
<iframe src="http://m.youtube.com"></iframe>
<iframe src="http://m.dropbox.com"></iframe>
<iframe src="http://m.yahoo.com"></iframe>
<iframe src="http://www.google.com"></iframe>
<iframe src="http://mail.google.com"></iframe>
<iframe src="http://www.facebook.com"></iframe>
<iframe src="http://www.youtube.com"></iframe>
<iframe src="http://www.dropbox.com"></iframe>
<iframe src="http://www.yahoo.com"></iframe>

同时,这个 iframe 运行良好!

<iframe src="http://www.google.com/custom"></iframe>

如何解决?

基于 cmets 的编辑: 如果这是无法解决的,是否有使用 iframe 的替代方法? XUL 中的 browser 标签之类的东西?我已经在 Firefox 扩展中尝试过浏览器标签并且效果很好,但我现在正在编写一个 chrome 扩展,所以我不能再依赖 XUL 了吗?

【问题讨论】:

你无法解决这个问题。他们正在阻止他们的内容被加载到框架中,这就是你正在做的事情。 那是因为“拒绝在框架中显示 'facebook.com',因为它将 'X-Frame-Options' 设置为 'DENY'。”换句话说,Facebook 将 X-Frame-Options 设置为 DENY,以阻止您将它们放入 iFrame。 有没有使用 iframe 的替代方案? XUL 中的“浏览器标签”之类的东西?我已经在 Firefox 扩展中尝试过浏览器标签并且效果很好,但是我现在正在编写 chrome 扩展,所以我不能再依赖 XUL 这就是 Facebook、Twitter 和许多其他服务通过 SDK 公开其 API 的原因。他们不希望您在 iFrame 中加载他们的内容。如果你要加载它,它必须通过适当的渠道。见developers.facebook.com 您应该适当地改写这个问题,并使用与 chrome 和插件开发相关的标签再次提问。 【参考方案1】:

是的,你可以

使用服务器端包含,从服务器获取它并将其包含在 iframe 中 使用无法识别该标题的自定义浏览器 复杂:使用 websockets 创建自己的 javascript HTTP 客户端,获取页面,并将其插入到 DOM 中

【讨论】:

【参考方案2】:

有兴趣的人,这个是做不到的!

【讨论】:

以上是关于拒绝在框架中显示网站,因为它的“X-Frame-Options”的主要内容,如果未能解决你的问题,请参考以下文章

自定义搜索引擎拒绝在框架中的iframe中显示,因为它将“X-Frame-Options”设置为“sameorigin”

拒绝在框架中显示,因为它将“X-Frame-Options”设置为 DENY facebook fb.ui 共享方法

拒绝在框架中显示 xyz,因为它设置了 X-Frame-Options - 我可以设置允许的域吗?

拒绝在框架中显示“https://www.google.co.in/”,因为它将“X-Frame-Options”设置为“sameorigin”

谷歌浏览器拒绝显示谷歌地图框架,因为 X-Frame-Options 设置为拒绝

JSF inputFile 拒绝在框架中显示“mypage.xhtml”,因为它将“X-Frame-Options”设置为“拒绝”