在控制台中接收此消息:拒绝显示在框架中,因为它设置了“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,我认为我已经明白了。
答案 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'
禁用卡巴斯基并刷新浏览器可为有问题的用户解决此问题。