Как корректно распознавать ошибку $http в AngularJS?

Возникла следующая проблема.
В angularjs используется $http.post для загрузки данных с сервера. В случае, когда источник данных (своё API) по каким-то причинам недоступно (ну, или инета нет) $http возвращает status = 0 в обработчике error. Что нормально. Получив этот статус я хочу информировать пользователя о проблемах в сетью или API. Однако, этот же статус у запроса присваивается и в случае, когда происходит просто переход на другую страницу с прерыванием, соответственно, текущего ajax запроса (бывает такое невезение). И, естественно, в этом случае выдавать всякие пугающие мессаги пользователю ни к чему.

Вопрос - можно ли отделить мух от котлет, т.е. распознать прерывание запроса пользователем и реальную недоступность удалённого источника?
  • Вопрос задан
  • 2815 просмотров
Пригласить эксперта
Ответы на вопрос 2
TekVanDo
@TekVanDo
Javascript Developer
В большинстве браузеров есть события offline, online - https://developer.mozilla.org/en-US/docs/Web/API/N... можно их статус отслеживать.
Ответ написан
Serhioromano
@Serhioromano
Web Developer
Используй метод error и статус.

$http.post(...).
      error(function(data, status) {
          if(status == 404) {
               alert('Not found');
          }
      });


Я не уверен что статус будет 404. Проверь через консоль лог что там возвращается.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы