Angular.js $ http intercept "net :: ERR_CONNECTION_REFUSED"

J'essaie d'écrire un gestionnaire d'erreur générique pour mon site Web en utilisant $http' intercepteurs de $http' mais ils ne semblent pas pouvoir faire ce que je veux faire.

J'ai placé les intercepteurs sur 'response' et 'responseError' mais ils ne sont jamais appelés lorsque le serveur est hors ligne / ne réagit pas (net :: ERR_CONNECTION_REFUSED). Je comprends pourquoi cela se produit, il n'y a pas de réponse à l'interception.

J'aimerais savoir s'il existe une manière générique d'attraper ces erreurs, sauf d'écouter le $httpPromise d' error $httpPromise pour chaque demande.

Vous pouvez probablement vérifier l'état de ResponseError. Lorsqu'une API est hors ligne qui est 0 (jusqu'à Angular 1.3.18) ou -1 (depuis Angular 1.3.19):

 angular.module("services.interceptor", arguments).config(function($httpProvider) { $httpProvider.interceptors.push(function($q) { return { responseError: function(rejection) { if(rejection.status <= 0) { window.location = "noresponse.html"; return; } return $q.reject(rejection); } }; }); });