2013-11-04 40 views
-1

我使用jQuery的與ASP.net MVC(後端不`噸真的很重要,我認爲)爲什麼AJAX請求成功,但它最終會失敗,再打

在JavaScript中,我有這樣一個

輔助函數
postAsync: function (url, data) { 
      return $.ajax({ 
       url: url, 
       data: JSON.stringify(data), 
       type: 'POST', 
       contentType: 'application/json; charset=utf-8', 
       dataType: 'json' 
      }); 
     } 

,當我要與服務器進行交互,我會做

postAsync("/mycontroler/methodname", {input: value}).done(function(){ 
    // show success message 
}).fail(function(err){ 
    // show error message 
}); 
然而

,我所有的Ajax請求始終處於「失敗」回調結束。 我期待進入「犯錯」的對象,我可以看到

status: 200 
statusText: "OK" 

但爲什麼它是錯誤的結束。我調試我的控制器,它就好!根本沒有例外。

有什麼想法嗎?

+0

確定後端是給你正確的響應?可能是那裏的錯誤? – putvande

+1

如果你的服務器不給你json,狀態實際上是200/OK,但jQuery不能解析json,所以它失敗。或者它可能是一個空的答案,自jQuery 1.9以來被認爲是無效的json內容:http://jquery.com/upgrade-guide/1.9/#jquery-ajax-returning-a-json-result-of-an-空串 – Zzirconium

+1

將響應正文中收到的輸出粘貼到jsonlint.com並確保其驗證。 – charlietfl

回答