在下面的代码中,我尝试在登录后执行 ajax 和重定向,
非常奇怪的是,它让我登录,但是 FB.login
之后的任何内容都被忽略了!
我也在另一个站点中使用了这个确切的代码,它工作正常,使用了 ajax 和重定向。
对 facebook api 的调用是异步的,这里没有包含(有效)
$(".joiner").live("click", login);
var button = document.getElementById('fb-login');
window.fbAsyncInit = function() {
FB.init({appId: '0000000000000000', status: true});
FB.getLoginStatus(function(response) {
if (response.session) {
console.log('User is logged in.');
FB.api("/me", handleMe);
}
else {
console.log('User is not logged in.');
}
});
};
function login(){
FB.login(function(response) {
if (response.session) {
console.log('Login success.');
FB.api("/me", handleMe);
}
else {console.log('Login cancelled.')}
});
}
function handleMe(response) {
$.ajax({
type: 'GET',
url: 'www.url.com',
data: "uid=" + response.id + "&name=" + response.name + "&gender=" + response.gender,
success: function(){
console.log('Ajax successful.');
window.location = "www.url.com";
},
error: function(){console.log('Ajax failed.');}
});
}
最佳答案
我前段时间遇到过这个问题。我可以通过在 facebook 应用程序配置中设置正确的 url 并从此 url 运行脚本来解决它。当您尝试从您的本地主机登录时,它在应用程序配置中使用不同的 url 设置时不起作用。
有显示错误代码的respone,但没有response.session。
关于javascript - Facebook 登录功能在登录后不执行任何操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6436966/