2014-10-29 87 views
0

我需要調用FB.logout()並立即註銷應用程序。要從應用程序註銷,需點擊DELETE /signout,點擊#sign_out_btn後發生。我在事件發生前將onclick事件綁定到了按鈕FB.logout()在onclick事件中等待FB.logout()事件

我第一次嘗試:

$('#sign_out_btn').click(function(e) { 
    FB.getLoginStatus(function(response) { 
    if (response.status === 'connected') { 
     FB.logout(function(response){ 
     return true; 
     }); 
    } else { 
     return true; 
    }); 
}); 

沒有工作,因爲FB.logout()異步調用和應用程序繼續執行DELETE /signout呼叫和重定向,所以FB.logout()調用從未。

我想出了這是我從使得原來調用服務器上的按鈕,點擊防止和使用ajax使DELETE請求logout回調之後手動重定向頁面一種解決方法:

$('#sign_out_btn').click(function(e) { 
    e.preventDefault(); 
    FB.getLoginStatus(function(response) { 
    if (response.status == 'connected') { 
     FB.logout(function(response) { 
     $.ajax({ 
      url: '/signout', 
      type: 'DELETE', 
      success: function(result) { 
      return window.location = '/'; 
      } 
     }); 
     }); 
    } 
    }); 
    return false; 
}); 

它的工作原理,但它似乎並不是一個聰明的解決方案。任何更好的想法?

回答