我在這個問題上掙扎了幾個小時,但沒有成功的跡象。我正在嘗試實現Facebook登錄。這是我的代碼:遞歸過多 - jquery - 爲什麼?
function fblogin() {
FB.login(function(response) {
if (response.authResponse) {
var url = '/me?fields=name,email';
FB.api(url, function(response) {
$('#email_login').val(response.email);
$('#pwd_login').val(response.name);
$('#sess_id').val(response.id);
if($('#evil_username').val()==""){
$('#loginform').submit();
}else{
// doh you are bot
}
});
} else {
// cancelled
}
}, {scope:'email'});
}
但一旦我點擊Facebook登錄按鈕,我得到控制檯too much recursion
。這是爲什麼?關於這個問題,我在這裏閱讀了很多關於stackoverflow的問題,但是無法找到我的案例的線索。
我沒有在這裏遞歸,但發生了什麼導致遞歸?
並且存在從
window.fbAsyncInit = function() {
FB.init({
appId : 'xxxxxxxxxxxxx',
channelUrl : '//www.mydomain.de/channel.html',
status : true,
cookie : true,
xfbml : true
});
// Additional init code here
FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
// connected
} else if (response.status === 'not_authorized') {
// not_authorized
fblogin();
} else {
// not_logged_in
fblogin();
}
});
};
並且還從正常LOGIN
按鈕,這觸發fblogin()
呼叫它。
你打這個電話過得怎麼樣? – SLaks
設置'event.preventBubble = true' –
@SLaks,請參閱我的更新。我添加了我如何調用fblogin() – doniyor