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运算符来抑制它们。这是正确的方法吗?

第二个问题:

所以目标是发送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 回答