2
在下面的代碼中,我嘗試登錄後執行ajax和重定向, 奇怪的是,它登錄了我,但是在FB.login
被忽略!Facebook登錄功能在登錄後不會執行任何操作
我也在另一個站點使用這個確切的代碼,它與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.');}
});
}
thanx,你是什麼意思「正確的URL」我試圖從外面的Facebook運行它,並得到完全相同的結果。另外,你的意思是什麼登錄表單?我不明白你在最後一句中的意思。 – ilyo
我的意思是在Facebook應用程序配置中輸入的網址必須是您測試網站的網址。所以如果您在應用程序配置中輸入www.test.com並想要進行Facebook登錄,則您的網頁來自此域。簡而言之:如果www.test.com進入Facebook應用程序配置,當您從http:// localhost/test進行測試時,它不起作用。 – philipp