Capture 404 статус с jQuery AJAX

У меня есть этот код:

$.ajax({ cache: false,
    url: "/Admin/Contents/GetData",
    data: { accountID: AccountID },
    success: function (data) {
        $('#CityID').html(data);
    },
    error: function (ajaxContext) {
        alert(ajaxContext.responseText)
    }
});

Я все еще запутался в ajaxContext и как захватить 404 коды возврата. Однако у меня есть другой вопрос. Я читаю кое-что о кодировании с успехом и терпит неудачу и больше не использую ошибку в последних версиях jQuery.

Так что я должен изменить свой код, чтобы использовать выполненный и завершившийся сбой. Как тогда я могу проверить 404?

Ответы

Ответ 1

Замените функцию ошибки следующим образом:

error:function (xhr, ajaxOptions, thrownError){
    if(xhr.status==404) {
        alert(thrownError);
    }
}

Ответ 2

404 erros будет обрабатываться анонимной функцией, подключенной к свойству error. Все, кроме успешного HTTP-запроса на URL (т.е. 2xx), вызовет метод ошибки. Следующие действия будут работать для вашей цели:

error : function(jqXHR, textStatus, errorThrown) { 
    if(jqXHR.status == 404 || errorThrown == 'Not Found') 
    { 
        console.log('There was a 404 error.'); 
    }
}

Когда они ссылаются на удаление функций success и error в документации jQuery, они относятся к классам jqXHR, а не к свойствам $.ajax().