Подтвердить что ты не робот

JQuery.ajaxSetup: переопределить ошибку с помощью statusCode

У меня есть следующий код для обработки ошибок jQuery AJAX по умолчанию:

$.ajaxSetup({
    error : function(jqXHR, textStatus, errorThrown) {
        alert("Error: " + textStatus + ": " + errorThrown);
    },
    statusCode : {
        404: function() {
            alert("Element not found.");
        }
    }
});

Однако, когда 404 случается, BOTH функции upcalled: первая ошибка, затем statusCode, поэтому я вижу 2 последовательных предупреждения.

Как предотвратить это поведение и получить обратный вызов ошибки, только если statusCode не был настроен на повышение?

4b9b3361

Ответ 1

Как просто проверить код состояния 404 в обработчике ошибок?

$.ajaxSetup({
    error : function(jqXHR, textStatus, errorThrown) {
        if (jqXHR.status == 404) {
            alert("Element not found.");
        } else {
            alert("Error: " + textStatus + ": " + errorThrown);
        }
    }
});

Ответ 2

Попробуйте следующее:

$.ajaxSetup({
error : function(jqXHR, textStatus, errorThrown) {
    if(jqXHR.status === 404) {
      alert("Element not found.");
    } else {
      alert("Error: " + textStatus + ": " + errorThrown);
    }
}
});