2013-02-25 108 views
1

我是一個發送ajax請求的javascript函數。請注意,服務器會返回一個錯誤,即使「一切似乎是確定」這意味着有可能是成功的處理程序錯誤信息:如果發生錯誤或錯誤代碼,請重新發送ajax請求

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()請求的數量,但我認爲這將是微不足道的,我會自己照顧它。

回答

2

如何再次調用該函數?你也可以添加一個計數器。

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

並使用。

var i=0; 
相關問題