Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Chrome/Safari(webkit)中的Facebook Javascript SDK登录问题-不安全的Javascript尝试_Javascript_Facebook_Webkit_Angularjs_Hosts - Fatal编程技术网

Chrome/Safari(webkit)中的Facebook Javascript SDK登录问题-不安全的Javascript尝试

Chrome/Safari(webkit)中的Facebook Javascript SDK登录问题-不安全的Javascript尝试,javascript,facebook,webkit,angularjs,hosts,Javascript,Facebook,Webkit,Angularjs,Hosts,有人问过类似的问题,但这些问题的解决方案似乎对我没有帮助 我在虚拟机上设置了一个本地开发站点: 当index.php加载时,我已经运行了这个javascript(使用正确的appId): 然后,单击按钮时,会触发此javascript函数: #HTML <li><a class="btn" href="#" ng-click="connectToFacebook()">Connect with Facebook</a></li> #Snippet

有人问过类似的问题,但这些问题的解决方案似乎对我没有帮助

我在虚拟机上设置了一个本地开发站点:

当index.php加载时,我已经运行了这个javascript(使用正确的appId):

然后,单击按钮时,会触发此javascript函数:

#HTML
<li><a class="btn" href="#" ng-click="connectToFacebook()">Connect with Facebook</a></li>

#Snippet in AngularJS Controller
$scope.connectToFacebook = function() {
    facebookConnect.authenticate(
    function(reason) { // fail
        console.log(reason);
    }, 
    function(user) { // success
        console.log('logged in',user);
        //Session.login();
    });

    return false;
}

#Factory in AngularJS module
.factory('facebookConnect', function() {
return {
    authenticate: function(fail, success) {
        FB.login(function(response) {
            console.log(response);
            if (response.authResponse) {
                FB.api('/me', success);
            } else {
                fail('User cancelled login or did not fully authorize.');
            }
        });
    }
}
我已经将我的本地测试URL添加到了开发人员部分的facebook应用程序中,因为它使用Firefox登录。这是我的频道文件,存储在

这是我笔记本电脑上运行的VirtualBox Ubuntu服务器的IP地址。我可以很好地浏览那个网站。

你的工厂有一些奇怪的JavaScript:
返回新函数()。。。除此之外,我看不出有什么问题。我使用相同的基本技术,我在Chrome上没有任何问题

确保您的Facebook应用程序已设置到您的域(我们称之为“mydomain.com”)。。。然后,要在本地进行测试,您需要编辑指向mydomain.com的命令,将其指向127.0.0.1。。。因此,浏览器位置中的URL符合Facebook的预期

这可能是我和你唯一的区别

。。。另外,请确保您的应用程序ID是设置Facebook应用程序时使用的正确应用程序ID。再检查一遍。BS“测试”应用程序ID也会给你错误消息

- -


编辑:在
新函数(){}
前面我认为这不是你的问题。。。。我想再解释一下:

var x = new function() { this.foo = 'test'; };

var x = { foo: 'test' };
因为
new
关键字用于将函数作为对象构造函数调用,并且您正在匿名函数上使用new,无法再次使用,因此没有理由声明它

因此,您的代码片段可能(也可能应该)是:


沙盒模式必须被禁用才能在Chrome中工作。就这样,就这样了

我启用了该模式,因为我认为这会阻止它出现在搜索中,这是我不想要的。在Firefox中运行时,我看不出这是一个问题。但现在,我关闭了沙盒模式,它立即开始工作


我不明白为什么会停止Chrome。

我也有同样的问题,使用PhoneGap的插件进行原生Facebook身份验证。昨天,当我最后一次运行应用程序时,它工作了。今天-错误。请稍后再试:(希望这是一个全球性的Facebook错误。为什么要异步加载fb sdk?您是否尝试过以默认方式加载它?我没有尝试过非异步方式,我会尝试,但Facebook文档在其示例中显示了异步方式:。一方面,页面加载时间更好。如果使用同步方法,我会得到弹出窗口和same错误,但单击“确定”只会将我带到facebook,它不会重定向我。firefox停止工作。如果该行只是
return function()
,我会“我不确定是什么错误。它肯定是正确的应用程序ID,经过仔细检查,并且在Firefox中工作。我已经设置了Facebook应用程序设置,将我的本地主机URL用作“应用程序域”,lamp.siteyeah…return function(){}”“
new
关键字是为作为对象构造函数调用函数而保留的。如果我取出新的,我会得到错误,
object function(){this.authenticate=function…}没有方法“authenticate”
那么…return new function(){}与return{}完全相同。”…因为您正在创建一个匿名函数并将其作为构造函数调用。无论如何,我认为您的问题更多地与浏览器位置栏中的URL有关,而不是与任何内容有关。您需要编辑主机文件,以便在Facebook希望看到的域名上进行本地调试。
<script src="http://connect.facebook.net/en_US/all.js"></script>
192.168.0.13 lamp.site
var x = new function() { this.foo = 'test'; };
var x = { foo: 'test' };
.factory('facebookConnect', function() {
    return {
        authenticate: function(fail, success) {
            FB.login(function(response) {
                console.log(response);
                if (response.authResponse) {
                    FB.api('/me', success);
                } else {
                    fail('User cancelled login or did not fully authorize.');
                }
            });
        }
    }
});