2012-06-10 19 views
0

我需要返回一個jQuery ajax來處理設置響應方法的HTTP錯誤代碼?使用jQuery 1.7。

例如,我有以下代碼:

var request = $.ajax({ 
      type: "POST", 
      url: "/report/template/save", 
      data: formData, 
      success: function() { 

      }, 
      statusCode: { 
       400: function() { 
        $('#template_form .ajax-msg').show(); 
        $('#template_form .ajax-msg').html('<strong>Sorry, save failed.'); 
       } 
      } 
     }); 
request.fail(function(data) { 
      $('#template_form .ajax-msg').show(); 
      $('#template_form .ajax-msg').html('<strong>Sorry, save failed.'); 
     }); 

我的確可以確認被返回一個400。

如果表單沒有驗證服務器端,我試過返回狀態500和400沒有運氣。相反會發生的是代碼被暫停,並且.ajax-msg不顯示任何內容。 $.ajax期望什麼?謝謝!

+0

我從來不知道ajax請求中存在statusCode,如果從服務器返回的值是成功或錯誤並相應地顯示內容,我總是會檢查成功。 – Grigor

+0

是的,如果我可以使它工作,那麼可以明確地區分erorrs。將有助於分離驗證和服務器錯誤。 http://api.jquery.com/jQuery.ajax/ – crockpotveggies

+0

我想你有太多的處理程序註冊。刪除成功和失敗處理程序,並嘗試僅使用「statusCode」處理程序。 – six8

回答

0

有多個衝突出現,並感謝我能夠通過它的評論。

首先,有太多的成功處理程序(在我看來,命名有點模糊)。我刪除了statusCode,並用request.failrequest.always替換,這使我可以對每個響應進行操作。

其次,代碼實際上並沒有停止,但我錯誤地搞砸了一個選擇器,$('#template_form .ajax-msg')改爲'$('.modal .ajax-msg')

我希望能幫助未來的問題!

相關問題