在Chrome上登录Facebook失败。没有对话框和Javascript未捕获异常

在Chrome上登录Facebook失败。没有对话框和Javascript未捕获异常,javascript,facebook,google-chrome,facebook-javascript-sdk,Javascript,Facebook,Google Chrome,Facebook Javascript Sdk,我有一个用于登录Facebook的javascript: window.fbAsyncInit = function() { FB.init({ appId : '{{ app_id }}', // App ID status : true, // check login status cookie : true, // enable cookies to allow the serve

我有一个用于登录Facebook的javascript:

    window.fbAsyncInit = function() {
        FB.init({
          appId      : '{{ app_id }}', // App ID
          status     : true, // check login status
          cookie     : true, // enable cookies to allow the server to access the session
          xfbml      : true // parse XFBML
        });

        FB.getLoginStatus(function(response) {
            if (response.status === 'unknown') {
                FB.login({
                    scope: 'friends_birthday,manage_pages'
                });
            }else{
                // Check permissions
                FB.api('/me/permissions',function(response) {
                    if (!('friends_birthday' in response.data[0] && 'manage_pages' in response.data[0])){
                         // Permissions not OK
                         FB.ui({
                            method: 'permissions.request',
                            perms: 'friends_birthday,manage_pages'
                            },function(response) {
                         });
                    }
                });
            }
        });

        FB.Canvas.setAutoGrow();
      };

      // 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/all.js";
        fjs.parentNode.insertBefore(js, fjs);
      }(document, 'script', 'facebook-jssdk'));
没有对话框出现,我在的第76行得到了一个javascript错误,出现了一个未捕获的异常(显然名为“h”)


这发生在Chrome上,而不是Safari上。问题的原因是什么?

我认为这是因为您的FB.login函数错误,下面是一个小修复/示例:

 FB.login(function(responseAuth) {
     if (!responseAuth.authResponse) {
         console.log('Something went wrong...');
         return false;
     }
 }, { scope: 'email' });

Chrome和Facebook似乎没有很好地配合。我目前遇到一个无法获取
https://facebook.com
在我的机器上完全以Chrome加载。关于这个问题有很多讨论,但除了“nuke your Chrome user profile”之外,我还没有找到其他解决方案。我使用过许多具有Facebook功能的网站,这些网站在Chrome上运行得很好。@MatthewMitchell,你是否安装了Facebook Disconnect之类的扩展?在匿名窗口中运行时,是否会出现相同的错误?另外,您是从本地html文件还是从服务器上托管的页面进行测试?当您的启动协议是
文件:
(而不是
http[s]:
)时,
js.src=“//connect.facebook.net…”
行中可能会出现问题。未使用扩展名。我正在使用带有HTTP的本地服务器。谢谢,你说得对。虽然我有一个问题,阻止弹出窗口,所以我现在使用重定向到www.facebook.com/dialog/oauth。