2

我有多个 ajax 请求,我想按顺序执行,所以我使用 $.when jQuery 方法嵌套它们。

$.when(
  $.ajax({
    url : url,
    type: 'GET',
    dataType : 'json'
   }),
  $.ajax({
    url : url,
    type: 'GET',
    dataType : 'json'
  }),
 $.ajax({
   url : url,
   type: 'GET',
   dataType : 'json'
})

).then(doThis);

现在的问题是,我有第二个 ajax 失败,这破坏了一切。

我想知道,即使任何呼叫失败,我们如何才能继续序列。

4

1 回答 1

3

when().then()概念仅在该when()部分中的所有内容都成功时才有效。如果要一个接一个地执行 AJAX 调用,则需要执行以下操作:

$.ajax({
    url : url,
    type: 'GET',
    dataType : 'json',
    error: function() { alert("Error in call #1") },
    complete: function() {
        $.ajax({
            url : url,
            type: 'GET',
            dataType : 'json',
            error: function() { alert("Error in call #2") },
            complete: function() {
                $.ajax({
                    url : url,
                    type: 'GET',
                    dataType : 'json'
                    error: function() { alert("Error in call #3") },
                })
            }
        })
    }
})

编辑:我更新了上面的答案,包括一种使用error回调处理 AJAX 调用失败的方法。

于 2013-03-21T23:54:03.040 回答