拒绝在框架中显示,因为它设置了X-Frame-Options'去DENY facebook fb.ui分享方法

时间:2014-05-09 02:11:43

标签: javascript facebook facebook-graph-api cross-domain

在控制台中接收此消息:拒绝显示在框架中,因为它设置了“X-Frame-Options'到DENY

当网站以移动版本显示时会发生这种情况,如果用户代理是移动设备,则只会提供一组不同的html和资产。

它会在控制台错误消息中显示m.facebook.com。

FB.ui(
{
    method: 'share',
    href: 'https://www.espn.com/mlb',
},
    function(response) {
        if (response && !response.error_code) {
          console.log('shared_post');
          //facebook_post_to_fanpage(access_token_data, link_id, song);
          return true;
        } else {
          return false;
        }
    }
);      

我可以在网站的移动版本上使用FB.api,以及登录和getauth没有任何问题,但是当我尝试使用FB.ui,共享和feed方法时,它让我适合

如果我使用的是facebook javascript sdk,我认为我已经明白了。

5 个答案:

答案 0 :(得分:30)

我从这篇文章中得到了我的解决方案:Loading Iframe Facebook (Load denied by X-Frame-Options)

  

我遇到了同样的问题,当我使用target =" _top"对于链接,它现在正在完美运作。

答案 1 :(得分:4)

您必须在FB开发者短划线中允许您的移动应用域。当用户没有登录FB时,我遇到了FB.ui这个问题 - '分享'。

我发现此视频非常有用:https://www.youtube.com/watch?v=7CNpLgwa0-c

答案 2 :(得分:1)

我不确定这是最近的实际情况,但是在角度8中,“发送”对话框遇到了相同的问题。 就我而言,解决方案是:在FB.ui {...}中添加显示:'popup'。

答案 3 :(得分:0)

可能是FB中的一个或一些共享内容是视频。

您可以考虑隐藏它或使用embed type更改视频的网址。

答案 4 :(得分:0)

这是在Mac用户安装Kaspersky Security Cloud之前在我们的站点上发生的。该防病毒软件以某种方式干扰了Facebook iframe的加载,并使其无限期停止,从而引发错误Refused to display https://www.facebook.com... in a frame because it set X-Frame-Options to 'deny'

禁用卡巴斯基并刷新浏览器可为有问题的用户解决此问题。