突然间,当我尝试通过Facebook登录时,我的应用程序中发生了一件奇怪的事情。在询问登录详细信息后,facebook connect弹出对话框将显示空白屏幕。通常我希望看到窗口关闭,然后网站本身会继续,但它似乎已经挂起。
我正在使用Javascript SDK on Localhost
以下是我正在使用的代码(直接从facebook文档中复制):
window.fbAsyncInit = function () {
FB.init({ appId: fbAppId,
status: false,
cookie: true,
xfbml: true
});
};
(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));
$(document).ready(function () {
$("#fb_button_login").click(function () {
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.');
}
});
});
});
其他一些说明:
它似乎挂起的网址是here
谢谢你们。
答案 0 :(得分:1)
好像是一个bug: https://developers.facebook.com/bugs/241915819261223?browse=search_4ff2ead131a032989098325
从上面链接中的评论中,您可以尝试在端口80上运行您的应用并避免使用网址中的端口部分
答案 1 :(得分:0)
尝试以下代码
<html>
<body>
<div id="fb-root"></div>
<script type="text/javascript" src="http://connect.facebook.net/en_US/all.js"></script>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js" ></script>
<script>
FB.init({appId: fbAppId, status: true, cookie: true, xfbml: true});
$(document).ready(function () {
$("#fb_button_login").click(function () {
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.');
}
});
});
});
</script>
<a href="javascript://" id="fb_button_login">Login</a>
</body>
</html>