拒绝在框架中显示网站,因为它的“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”设置为“拒绝”