Deferred jquery 201 Post created going in reject

Deferred jquery 201 Post created going in reject

postData: function (url, data) {
    var deferred = Q.defer();

    $.ajax({
        type: 'POST',
        url: url,
        data: JSON.stringify(data),
        dataType: "json",
        beforeSend: function (xhr, settings) {
            xhr.setRequestHeader('Authorization', 'Bearer ' + window.access_token);
            xhr.setRequestHeader("Content-Type", "application/json; charset=UTF-8");
        },
        success: function (data, responseText, jqXHR) {
            deferred.resolve(data, responseText, jqXHR);
        },
        error: function (e) {
            deferred.reject(e);
        }
    });

    return deferred.promise;
}

我不明白为什么我的请求会进入错误回调

根据您返回的评论 html 您需要设置适当的 dataType

如果请求的数据类型存在解析错误,

$.ajax 也会出错。您可以通过记录错误处理程序的参数来确认这一点 error: function (xhr, statusText, errorThrown)

尝试更改

dataType:'json'

dataType:'html'

或删除 属性,因为 jQuery 将从内容类型 header

中得知