2012-02-27 62 views
0

當jquery ajax()調用返回成功時,我需要幫助調用FB.api函數。顯示Facebook名稱的提醒只能在Chrome中使用。與Firefox和IE8無關。警報(數據)是好的,窗口重新加載也是。但FB.api沒有。非常感謝您的幫助:FB.api和jquery ajax響應

function fb_login() { 
    FB.login(function(response) { 
     //alert('login'); 
     if (response.authResponse) { 


$.ajax({ 
    url: 'fb_login.asp', 
    data: '', 
    type: 'POST', 
    dataType: 'text', 
    timeout: 10000, 
    error: function(){ 
     alert('Error login Facebook'); 
    }, 
    success: function(data){ 
     alert(data); 
     // do something with xml 

     FB.api('/me', function(resp) { 
      alert(resp.name); 
     });   

     window.location.reload(); 
     //alert('ok'); 
    } 
}); 



     } 


    }, {scope:'email,publish_stream'}); 

} 
+0

*「此代碼僅適用於Chrome瀏覽器,與Firefox和IE8無關。」* Huh?你的意思是它不適用於Firefox和IE8?如果是這樣,**如何**不起作用?你看到了什麼結果?你期望*看到什麼結果?當你使用適當的調試器(Firefox和IE8都有)時,你會發現什麼?設置斷點,檢查變量等? – 2012-02-27 10:28:45

+0

Hi T.J.我希望看到警報:alert(resp.name);在Chrome中,顯示了我的fb名稱的警報。在Firefox和IE中不顯示警報。昨天我試圖用Firebug進行檢查,但我是新來的調試HTML頁面,現在我迷路了。警報(數據)正在工作,窗口重新加載正在工作。只有FB.api不能正常工作 – 2012-02-27 10:50:09

+0

'@ bepi':最好使用「編輯」鏈接將其添加到問題中。 – 2012-02-27 10:53:45

回答

1

到FB.api的調用是異步的頁面重新加載執行回調函數之前。試試這個:

FB.api('/me', function(resp) { 
    alert(resp.name); 
    window.location.reload(); 
    alert('ok'); 
}); 
+0

絕對好。非常感謝Plamena! – 2012-02-27 16:11:33