2013-11-04 42 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

回答