2

複数のajaxリクエストがあり、それらを順番に実行したいので、$。whenjQueryメソッドを使用してそれらをネストしています。

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

).then(doThis);

ここで問題は、2番目の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") },
                })
            }
        })
    }
})

編集: 上記の回答を更新して、コールバックを使用して AJAX 呼び出しの失敗を処理する方法を含めましたerror

于 2013-03-21T23:54:03.040 に答える