Как корректно распознавать ошибку $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. Проверь через консоль лог что там возвращается.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
25 апр. 2024, в 09:29
2500 руб./за проект
25 апр. 2024, в 09:27
4000 руб./за проект
25 апр. 2024, в 09:20
10000 руб./за проект