【问题标题】:Facebook FB.Init Refused to display in a frame because it set 'X-Frame-Options' to 'DENY'Facebook FB.Init 拒绝在框架中显示,因为它将“X-Frame-Options”设置为“DENY”
【发布时间】:2017-06-15 19:32:39
【问题描述】:

按照 Facebook 的说明,Chrome 中的 FB.Init 生成

拒绝显示 'https://www.facebook.com/connect/ping?...' 在 框架,因为它将“X-Frame-Options”设置为“DENY”。

但是,页面上没有框架。奇怪的是,IE 似乎对这个电话很满意。

根据stackoverflow的建议,我添加了

<httpProtocol>
    <customHeaders>
      <add name="X-Frame-Options" value="SAMEORIGIN" />
    </customHeaders>
</httpProtocol> 

system.webServer

无济于事。

所以这里发生了其他事情。关于这个问题似乎有很多关于 SO 的问题,但没有明确的解决方案。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<h1>hello world</h1>

<script>
    // -----------------------------
    var FBinitialised = false;

     window.fbAsyncInit = function() {
        FB.init({
            appId      : '<MY_APP_ID>',
            cookie     : true,
            xfbml      : true, 
            version    : 'v2.8'
        });

        console.log( 'after FB.init');

        FB.getLoginStatus( function( response){
            FBinitialised = true;
            console.log( 'FBinitialised');
        });
    };

    // ---------------------------------
    // Load the SDK asynchronously
    (function(d, s, id){
        var js, fjs = d.getElementsByTagName(s)[0];
        if (d.getElementById(id)) {return;}
        js = d.createElement(s); js.id = id;
        js.src = '//connect.facebook.net/en_US/sdk.js';
        fjs.parentNode.insertBefore(js, fjs);
    }(document, 'script', 'facebook-jssdk'));

    console.log( 'End of script');

</script>
</body>
</html>

有人知道怎么回事吗?

【问题讨论】:

  • SDK 有时会自己创建 iframe 元素。您想在这里实现的任何目标都不起作用吗?如果不是这种情况,那么只需忽略这些错误。
  • 谢谢,但 FBinitialised 从未在 Chrome 中设置,而是在 IE 中。

标签: facebook-graph-api x-frame-options


【解决方案1】:

无聊之后,我机器上的 Chrome 和 FF 似乎已损坏,可能是卡巴斯基脚本注入。重新安装 W10 解决了这个问题。道歉。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-20
    • 2016-08-25
    • 2023-01-31
    • 2014-06-26
    • 2019-03-09
    • 2016-08-15
    • 2019-02-24
    相关资源
    最近更新 更多