1

私は ajax リクエストを送信する JavaScript 関数です。「すべて問題ないように見える」場合でも、サーバーはエラーを返す可能性があることに注意してください。これは、成功のハンドラーにエラー情報がある可能性があることを意味します。

function sendAjaxRequest(){
    $.ajax({
        type: "GET",
        url: "/123",
        success: function(data){
          //there might and might not an error in data
          if(data.error_exists){
              retryIfError(data);
          } else{
            //everything is ok for sure
          }
        },
        error: function(xhr, textStatus, errorThrown){
          //there is the error for sure
          retryIfError(xhr);
        }
    });
}

 function retryIfError(data){
   var error = data.error_list # the array of error messages
   // ... what should I do further?
  }

エラーが発生する理由はsuccess: function(data)、サーバーがbegin ... rescue演算子を使用してそれらを抑制するためです。それは正しいアプローチですか?

2 番目の質問:

したがって、目標はsendAjaxRequest()、エラーがなくなるまで送信することです。それ、どうやったら出来るの? もちろん、送信sendAjaxRequest()リクエストの量も制限したいのですが、それは些細なことだと思いますので、自分で処理します。

4

1 に答える 1

3

関数を再度呼び出すのはどうですか?カウンターを追加することもできます。

error: function(xhr, textStatus, errorThrown){
            if(i<3)
            sendAjaxRequest(i++);
        }

そして使用します。

var i=0;
于 2013-02-25T10:28:54.710 に答える