Facebook FB.Init拒绝在一个框架中显示,因为它将'X-Frame-Options'设置为'DENY'

时间:2017-01-30 15:18:22

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

根据Facebook的说明,Chrome中的FB.Init会生成

  

拒绝在a中显示“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>

任何人都知道发生了什么事?

1 个答案:

答案 0 :(得分:1)

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