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

Refused to display document because display forbidden by X-Frame-Options

本文关键字:X-Frame-Options 禁止显示 因为 显示 文档 拒绝      更新时间:2023-09-26

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

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

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

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

我也遇到了这个问题,用以下方法解决了它:该应用程序正在将用户重定向到Facebook的登录屏幕(验证对话框),而用户已经登录。因此,我更改了代码,如果登录,则重定向到成功页面,如果未登录,则跳转到对话框。

当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/

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

这个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);
}