拒绝显示文档,因为 X-Frame-Options 禁止显示

Posted

技术标签:

【中文标题】拒绝显示文档,因为 X-Frame-Options 禁止显示【英文标题】:Refused to display document because display forbidden by X-Frame-Options 【发布时间】:2012-03-18 11:47:42 【问题描述】:

我正在构建一个 Facebook 应用程序,我注意到当尝试使用他们的 javascript API 获取用户的登录状态时,我有时会收到错误:

“。”

我每次点击应用程序的“检查登录状态”页面时都能够重现这一点,同时使用 Facebook 作为页面,而不是我的用户帐户。这很容易避免,因为我知道这会导致问题,但显然我的用户可能不知道这一点。

有没有办法确定用户是否将 Facebook 用作主页?因为这似乎几乎毁了我的整个应用程序。

【问题讨论】:

您能否确认您的 channel.htm 文件是否按预期工作? Way to detect "Refused to display document because display forbidden by X-Frame-Options." error?的可能重复 【参考方案1】:

当 facebook 从 Web 浏览器重定向到您的应用程序,然后您重定向到 facebook 授权登录时,这是一个问题。您必须确保表单替换页面并且不会像它那样加载到 facebook 画布中不喜欢。

所以你必须像这样做一个干净的重定向 - 这是节点示例

res.send("<script> top.location.href='"+ "https://www.facebook.com/dialog/oauth?    
client_id=*********&redirect_uri=http://apps.facebook.com/myapp" + "'</script>");

查看这个 facebook 开发页面及其在第 3 步中的内容

https://developers.facebook.com/docs/howtos/login/server-side-login/

移动应用似乎不是问题,只是桌面

【讨论】:

【参考方案2】:

我也遇到了这个问题,解决了: 该应用程序将用户从 Facebook 重定向到登录屏幕(身份验证对话框),而用户已经登录。 所以我更改了代码,如果登录则重定向到成功页面,如果未登录则重定向到对话框。

【讨论】:

如果他不解释他是怎么做到的,为什么他会得到绿色支票?【参考方案3】:

这个javascript有效吗?

document.write(isFacebookPage()?"YES, I'm in a Facebook Page!":"No, not a Facebook Page");

function isFacebookPage()
    return (document.location.href.indexOf('/pages/')>0);

【讨论】:

以上是关于拒绝显示文档,因为 X-Frame-Options 禁止显示的主要内容,如果未能解决你的问题,请参考以下文章

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

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

拒绝在框架中显示 LOCALHOST,因为“X-Frame-Options”设置为“sameorigin”

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

拒绝在框架中显示,因为它将“X-Frame-Options”设置为“SAMEORIGIN”

Django 拒绝在 iframe 中显示 YouTube 视频,因为它将“X-Frame-Options”设置为“SAMEORIGIN”