Как поймать ответ 400 в вызове jQuery getJSON

В jQuery я хочу получить некоторые данные из facebook, используя метод $.getJSON(), но если токен недействителен, Facebook возвращает статус 400. Как я могу поймать ошибку в $.getJSON() вместо $.ajax()?


person Muhammad Usman    schedule 14.11.2012    source источник


Ответы (3)


Я думаю, это сработает для вас

$.getJSON("example.json", function() {
  alert("success");
})
.success(function() { alert("success 2"); })
.error(function() { alert("error occurred "); })
.complete(function() { alert("Done"); });
person Elby    schedule 14.11.2012
comment
@ Ludo-Offtherecord Разве это не потому, что вы смотрите на вопрос, на который ответили в 2012 году? - person santon; 10.04.2019
comment
Я знаю, но сейчас мы живем в 2019 году, и люди (такие как я) по-прежнему будут сталкиваться с этим так приятно, если будут знать, почему это не работает для них и что сработает. Я не говорю, что ваш ответ был неправильным, я просто говорю, что это уже не правильно. - person Ludo - Off the record; 18.06.2019

документы Ajax jquery предлагают два решения, первое - это функция ошибки:

    error(jqXHR, textStatus, errorThrown)

который обнаруживает и сообщает текстовые части сообщений об ошибках для вас, другой — функция кода состояния (на той же странице). Вот пример использования с этой страницы:

    $.ajax({
      statusCode: {
        404: function() {
          alert("page not found");
        }
      }
    });
person A.M. D.    schedule 14.11.2012

Используйте обратный вызов функции complete(jqXHR, textStatus), исследуйте ответ и покажите соответствующее сообщение пользователю.

person Varun Achar    schedule 14.11.2012