обнаружение ошибки HTTP с помощью ajax - PullRequest
0 голосов
/ 21 января 2012

Я использую ajax-вызовы для получения некоторых данных HTML.В некоторых случаях есть вероятность, что я могу получить ошибку HTTP 403 (из-за некоторой ошибки IE Обнаружена ошибка 403 при использовании вызова ajax в IE , Хеш-фрагменты с прямой косой чертой, генерирующие ошибки 403 с AJAXзапросы в IE ).

В целях обработки ошибок я хочу узнать, какая ошибка произошла, и, соответственно, отобразить какое-то сообщение об ошибке.

Как мне это сделать?

Может быть, что-то вроде

$.ajax({
    type : 'POST',
    data : data,
    cache : false,
    url : url,
    dataType : 'html'
    success : function(){
        //if HTTP response is ok, diplay data
        //else if HTTP response gets 403 error, display some other message
    }
});

1 Ответ

1 голос
/ 21 января 2012

Цитировать документацию :

ошибка (jqXHR, textStatus, errorThrown)
Функция
Функция, вызываемая в случае сбоя запроса.
Функция получает три аргумента: объект jqXHR (в jQuery 1.4.x, XMLHttpRequest), строка, описывающая тип возникшей ошибки и необязательный объект исключения, если таковой произошел. Возможные значения для второго аргумента (кроме нуля): «timeout», «error», «abort» и «parsererror». При возникновении ошибки HTTP errorThrown получает текстовую часть состояния HTTP, например «Не найдено» или «Внутренняя ошибка сервера». Начиная с jQuery 1.5, установка ошибки может принимать массив функций. Каждая функция будет вызываться по очереди. Примечание. Этот обработчик не вызывается для междоменных сценариев и запросов JSONP.

$.ajax({
    type : 'POST',
    data : data,
    cache : false,
    url : url,
    dataType : 'html'
    success : function(){
        //if HTTP response is ok, diplay data
        //else if HTTP response gets 403 error, display some other message
    },
    error: function(){
        // Handle your error here
    }
});
...