2012-01-27 36 views
0

我在這裏有一個問題。比方說,我有一些Ajax使用jQuery像這樣:

var jqXHR = $.ajax({ 
     type: 'POST', 
     success: function(data) { 
      if(data != true) 
      { 
        return false; 
      } 
     } 
}); 

我知道,$就返回jqXHR對象。我的問題如下:

是否有可能使用該jqXHR對象獲取我的$ .ajax調用的成功函數的返回值?如果是這樣,我該怎麼做?如果這不可能使用jqXHR對象,有沒有什麼辦法可以訪問我的成功函數WITHOUT SETTING的async:false在$ .ajax中返回的值?

請幫忙嗎?

+1

'async:false'是敵人。躲開它。在成功回調中使用異步請求 – 2012-01-27 21:08:10

回答

3

沒有將async設置爲false是不可能的。我建議不要將其設置爲false,因爲它會完全停止頁面,直到服務器響應結束。有時如果連接速度較慢或者服務器由於起伏操作需要時間來響應,它甚至會掛起瀏覽器。

您可以在ajax的成功處理程序中執行您的代碼,您計劃在外部執行該代碼。

+0

如果我使用async:false,則不再使用Ajax。我不想那樣做 – user765368 2012-01-27 21:31:27

0

這是可能的 - 在某種程度上 - 返回jqXHR也是遞延對象,所以你可以做

jqXHR.then(function(data) { ... }); 

唯一的其他方式獲得對數據的訪問,我知道除了在AJAX回調,最酷的是你可以在發送ajax請求後多次使用它,它總是會返回你從服務器收到的數據。