为什么ajax要求成功,但最终会失败回调

时间:2013-11-04 09:03:03

标签: javascript jquery ajax asp.net-mvc-4

我正在使用ASP.net MVC的jquery(我认为后端并不重要)

在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"

但为什么它最终会出错。我调试我的控制器,它很好!一点也不例外。

任何想法?

1 个答案:

答案 0 :(得分:0)

如果你的服务器没有给你json,状态实际上是200 / OK但是jquery无法解析json,所以它失败了。或者它可能是一个空的答案,自jQuery 1.9以来被视为无效的json内容:http://jquery.com/upgrade-guide/1.9/#jquery-ajax-returning-a-json-result-of-an-empty-string - Zzirconium 15分钟前

返回空对象解决问题