javascript - Facebook JS SDK - 登录弹出窗口不关闭

标签 javascript facebook facebook-graph-api facebook-javascript-sdk

下面将登录事件绑定(bind)到一个 div。如果我点击它,我会得到预期的 js sdk 登录弹出窗口。但是,在使用我的凭据提交弹出窗口后,弹出窗口变为白色并且没有关闭。如果我刷新页面,我已经登录,但它不会像您预期的那样自动刷新。有人有什么想法吗?


编辑:相同的代码(具有不同的应用程序 ID 和域凭据)在不同的服务器上工作。这使我相信我的问题可能与以下代码无关。是否有任何应用程序或服务器配置可能导致登录弹出窗口无法关闭/更新?


<!DOCTYPE html>
<html class="no-js ie ie10plus" lang="en" xmlns:fb="http://www.facebook.com/2008/fbml">
    <head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# object: http://ogp.me/ns/object#">
        <script src="http://ajax.aspnetcdn.com/ajax/modernizr/modernizr-2.0.6-development-only.js"></script>
    </head>
    <body>
        <div id="fb-root"></div>
        <div id="fbLogin">Test login link</div>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" ></script> 
        <script>               
              var fbmm = {};

              window.fbAsyncInit = function() {
                FB.init({
                  appId      : '339910146083688', // App ID
                  cookie: true, 
                  xfbml: true,
                  status: true,
                  oauth: true
                });

                $(document).ready(function(){
                    $("#fbLogin").click(function(){
                        console.log('test');
                         FB.login(function(response) {
                           if (response.authResponse) {
                             console.log('Welcome!  Fetching your information.... ');
                             FB.api('/me', function(response) {
                               console.log('Good to see you, ' + response.name + '.');
                             });
                           } else {
                             console.log('User cancelled login or did not fully authorize.');
                           }
                         });
                    });
                });

              };

          (function(d){
             var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
             if (d.getElementById(id)) {return;}
             js = d.createElement('script'); js.id = id; js.async = true;
             js.src = "//connect.facebook.net/en_US/all.js";
             ref.parentNode.insertBefore(js, ref);
           }(document));
        </script>
    </body>
</html>

最佳答案

在 80 或 443 以外的端口上进行测试时存在一些已知问题。请尝试在这些(“正常”)HTTP(S) 端口之一上设置您的测试机器,看看问题是否仍然存在。

关于javascript - Facebook JS SDK - 登录弹出窗口不关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11240464/

相关文章:

javascript - AJAX 数据未传入 PHP

Facebook Canvas 不加载 Url,即使它有 SSL

ios - 在 Swift 4 中读取来自 Facebook Graph Request 的响应

javascript - 将 stackblitz Angular 版本更新到最新

javascript - WooCommerce 自定义简码产品类别下拉列表

javascript - 使用 session 发送 XmlHttpRequest(再次)

python - Facebook api in python 和源码掌握吧!

Facebook Graph API SEO 评论和脏话过滤器

IOS如何获取Facebook扩展权限对话框

android - 如何从应用程序中删除 facebook 墙上上传的照片