Jquery .ajax call“;“失败”;在创建但成功的201上;“完成”;如果异步==false

Jquery .ajax call“;“失败”;在创建但成功的201上;“完成”;如果异步==false,jquery,Jquery,使用jQuery1.9.1,我正在运行一个$.ajax调用,只有当我将“async”设置为false时,该调用才会成功。我已经看过了请求/响应,它们都很好。我看不出有什么理由叫“失败” 即使“async”设置为true,我也希望调用.done()。。。我有一个正在通过的集成测试,因为它将async设置为false。这是唯一的区别。我确认这是问题所在,因为我在实际代码中强制async为false,它突然开始成功并调用.done() 我猜这是一个json解析错误或是一个jQuery错误,但我如何确认

使用jQuery1.9.1,我正在运行一个$.ajax调用,只有当我将“async”设置为false时,该调用才会成功。我已经看过了请求/响应,它们都很好。我看不出有什么理由叫“失败”

即使“async”设置为true,我也希望调用.done()。。。我有一个正在通过的集成测试,因为它将async设置为false。这是唯一的区别。我确认这是问题所在,因为我在实际代码中强制async为false,它突然开始成功并调用.done()

我猜这是一个json解析错误或是一个jQuery错误,但我如何确认呢?我在jquery源代码中很难找到它。。。下面是要复制的jQuery代码。服务器正在正确创建对象,一切看起来都很好。(从回答中可以看出)

另外,在上面的输出中,每行前面加4个空格是非常烦人的。有没有一种更简单的方法来格式化SO中的代码块

谢谢你的帮助


编辑:请不要深入阅读我发布的请求/响应。我篡改了物品的名称,然后将其发布给公众。因此,内容长度是错误的,可能还有其他一些东西

这样别人就不会像我那样浪费时间了


原因是我在表单上提交按钮的点击处理程序中执行$.ajax,因此我必须首先执行e.preventDefault()。

PS:要格式化代码,只需选择它并点击“code”按钮,它就是带有curlybraces
{}的代码
?我测试过它可能不是json解析错误,因为我接受了json响应并将其放入json.parse(“响应在这里”)中,它工作正常。我面临同样的问题,但event.preventDefault()无法解决我的问题。
        var newObj = { Name: 'jesus', Birthday: '02/12/2013' };
        return $.ajax(
        {
            url: '/api/method',
            type: 'POST',
            processData: false,
            contentType: 'application/json; charset=utf-8',
            data: JSON.stringify(newObj),
            dataType: 'json',
            async: true,
        })
        .done(function (data, statusText) {
            console.log(statusText);
        })
        .fail(function(jqXHR, textStatus, errorThrown) {
            console.error(jqXHR);
            console.error(textStatus);
            console.error(errorThrown);
        });


POST http://localhost:64838/api/method HTTP/1.1
Host: localhost:64838
Connection: keep-alive
Content-Length: 48
Accept: application/json, text/javascript, */*; q=0.01
Origin: http://localhost:64838
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.17 (KHTML, like Gecko)        Chrome/24.0.1312.57 Safari/537.17
Content-Type: application/json; charset=UTF-8
Referer: http://localhost:64838/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3

 {"Name":"jesus","Birthday":"02/17/2013"}


HTTP/1.1 201 Created
Cache-Control: no-cache
Pragma: no-cache
Content-Type: application/json; charset=utf-8
Expires: -1
Location: http://localhost:64838/api/method/23
Server: Microsoft-IIS/8.0
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Access-Control-Allow-Headers: Content-Type
Access-Control-Allow-Origin: *
Date: Sun, 24 Feb 2013 05:07:27 GMT
Content-Length: 115

{"Id":23,"UserId":1,"Name":"jesus","someDate":"2013-02-17T00:00:00","someId":null,"someOtherProperty":null}