如何处理 jquery 中 ajax 请求的 204 响应

How to handle 204 response from ajax request in jquery

我正在尝试处理 Status: HTTP/1.1 204 No Content 错误。我正在使用 .fail() 来处理所有其他错误,但是 204 不是由该函数处理的。尝试 if (jqXHR.status == "204") {alert("error!");} 时,收到 204 时不会抛出警报。

$.ajax({
    url: url,
    method: 'GET',
    headers: {
        "Authorization": bearerToken
    },
}).then(function(response) {
    var obj = response;
    $("#imageid").css("border-color", "#ccc");
    $(".search-results").empty();
    for (var property in obj.entity.entries) {
        if (obj.entity.entries.hasOwnProperty(property)) {
            $(".search-results").append($("<li><a href='" + obj.entity.entries[property].uri + "' target='_blank'><div class='thumbnail'><img width='30' height='30' src='" + obj.entity.entries[property].uri + "' target='_blank'/></img><div class='caption'><p>" + obj.entity.entries[property].orientation + "</p></div></a></li>"));
        }
    }
    //$(".search-results").append("<div class='caption'>" + data.id + "</div><div class='thumbnail'><img width='40' height='40' src='" + data.thumbnailUrl + "'/></img>").css("float", "left");
}).fail(function(data, jqXHR) {
    if (jqXHR.status == "204") {
        $(".search-results").empty();
        $(".search-results").append("<p class='alert alert-danger'>Invalid ID</p>");
        $("#imageid").css("border-color", "red");
    }
    $(".search-results").empty();
    $(".search-results").append("<p class='alert alert-danger'>Invalid ID</p>");
    $("#imageid").css("border-color", "red");
});

2xx 视为成功。您的成功功能应该被调用。检查那里的状态代码。

jqXHR 是成功回调的第三个参数。

编辑:这是代码

then(function(data, responseText, jqXHR) {
  if(jqXHR.status == 204) alert('no content')
})