Я создаю автономный режим в приложении. Всякий раз, когда отправляется HTTP-запрос, я хотел бы, чтобы перехватчик обнаружил состояние сети. Если состояние не является связностью, я бы хотел создать макет ответа и заставить его чувствовать себя так, как будто ответ приходит с сервера.Может ли запрос-перехватчик создать ответ http в angularJS
ответ
Вы можете проверить, если вы находитесь в Интернете или не читая статус ответа на ваш перехватчик, если его 401/501/и т.д.:
var interceptor = ['$rootScope', '$q', function ($rootScope, $q) {
function success(response) {
return response;
}
function error(response) {
var status = response.status; // error code
if ((status >= 400) && (status < 500)) {
$rootScope.broadcast("AuthError", status);
return;
}
if ((status >= 500) && (status < 600)) {
$rootScope.broadcast("ServerError", status);
return;
}
// otherwise
return $q.reject(response);
}
return function (promise) {
return promise.then(success, error);
}
}]
Там еще один способ, с помощью HTML5, но я думаю, не будет работать в некоторых браузерах. Это делается с помощью navigator.onLine свойства, как:
if (navigator.onLine) {
//I'm online
} else {
I'm not online
}
(https://developer.mozilla.org/en-US/docs/Web/API/NavigatorOnLine/onLine)
Если вы бросаете объект внутри вашего запроса перехватчик это вызовет вызов перехватчика responseError, передавая объект как забросил его аргумент.
Вы должны найти способ оповестить responseError-перехватчик, что это не настоящая ошибка и что он должен вернуть пользовательский ответ.
Перехватчик responseError может выбрать для восстановления ошибки возвращения объекта ответа о провал возвращении отклоненного обещания (проверка угловой в $ HTTP-перехватчики документы)
EDIT: Если вы бросаете объект из запроса перехватчика вы не можете избежать сообщение об ошибке в консоли. Лучше вернуть отклоненное обещание передать объект конфигурации как значение и добавить дополнительную информацию в него для responseError обнаружить особую ситуацию.
- 1. Может ли HTTP-ответ пропустить фразу разума?
- 2. AngularJS: $ HTTP ответ слишком медленно
- 3. Возможно ли создать ответ HTTP через scapy
- 4. Создать ответ HTTP в Ruby
- 5. AngularJS не может прочитать ответ HTTP-заголовки с сервера NodeJS
- 6. AngularJS директива $ HTTP ответ JSon
- 7. AngularJS HTTP Не получать ответ
- 8. Может ли запрос HTTP PATCH создать ресурс?
- 9. Как перенаправить AngularJS $ http-ответ на браузер?
- 10. AngularJs $ http-ответ от веб-сайта
- 11. Фильтр по http получить ответ-angularjs
- 12. Возможно ли подслушивать HTTP-ответ?
- 13. Может ли тег скрипта блокироваться, если ответ HTTP равен 404?
- 14. Может ли клиент отправить HTTP-запрос, пока он получает ответ?
- 15. Может ли Akka-HTTP делать HTTP/2.0?
- 16. $ .ajax не может получить JSON HTTP-ответ
- 17. Возможно ли отложить HTTP-ответ в PHP?
- 18. Сохранить ответ от $ http service для массива в angularjs
- 19. Angularjs $ http-перехватчики - невозможно создать вызов requestError
- 20. Ответ HTTP-соединения HTTP
- 21. не может отобразить HTTP получить ответ от завода в контроллере в Angularjs приложении
- 22. Как преобразовать ответ JSON Http в массив в AngularJS 2
- 23. Как отправить http-ответ в диалоговое окно в angularjs?
- 24. Ответ HTTP 302 от прокси-сервера в angularjs
- 25. Как я могу вернуть ответ на HTTP-сообщение AngularJS $ SITATRA?
- 26. $ http get angularjs не может пройти param?
- 27. Как определить, завершен ли ответ HTTP
- 28. $ http ответ возвращает весь index.html
- 29. Будет ли кэшироваться HTTP-ответ без параметров кэширования http
- 30. angularjs каждый ответ функции http в отдельной строке внутри HTML