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

时间:2012-02-28 23:41:41

标签: javascript facebook x-frame-options

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

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

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

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

3 个答案:

答案 0 :(得分:1)

我也有这个问题,用以下方法修复: 应用程序将用户重定向到Facebook(验证对话框)的登录屏幕,而用户已登录。 所以我更改了代码,如果登录则重定向到成功页面,如果没有登录则更改为对话框。

答案 1 :(得分:1)

当facebook从网络浏览器重定向到您的应用,然后您重定向到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 :(得分:0)

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