2016-04-29 56 views
1

我有一個關於Ajax成功的問題。所以在之前的情況下,我已經返回了類似ID的數據,但現在在這種情況下,我要返回整個表格。所以我想在檢索我的數據之前檢查Ajax是否成功(200 OK)。什麼是最好的方式來做到這一點?此外,我使用新的方式來檢索數據並使用JQuery檢查錯誤。這裏是例子我的代碼:如果我返回表格,檢查Ajax調用是否爲200 OK的最佳方法是什麼?

<div id="box"></div> 

function getSlots(fld){ 
    var userID = '134'; 

    $j.ajax({ 
     type: 'POST', 
     url: 'AjaxData.html', 
     cache: false, 
     data: {'userID':userID}, 
      dataType: "html", 
      async: false 
     }) 
     .done(function(html){ 
      $j('#box').html(html); 
     }) 
     .fail(function(jqXHR, textStatus, errorThrown){ 
      gwLogIt(errorThrown); 
     }); 
    } 
+0

爲什麼你需要檢查'200 OK'? '.done'是否爲你檢查?這個代碼面臨什麼問題? –

+0

P.S.你爲什麼使用'async:false'?我不會建議使用它,因爲它會鎖定用戶的瀏覽器,直到完成通話。 –

+0

我不知道.done是否真的檢查過。在過去,我把如果陳述放在成功之內。 –

回答

2

從官方文檔:

$.ajax({ 
    statusCode: { 
    404: function() { 
     alert("page not found"); 
    } 
    } 
}); 

http://api.jquery.com/jQuery.ajax/

此外,如果你使用類似通天transpile ES6,您可以使用fetch API的Ajax調用。我個人停止使用jQuery±2年前..當移動到React世界:)

3

你不需要檢查。各種回調被稱爲下列條件:

  • .done()success:當AJAX調用成功被調用。
  • .fail()error:在發生錯誤時(無論是從服務器還是解析響應的jQuery代碼中)調用。
  • .always()complete:在任一情況下都被調用。
相關問題