Angular.js $ http拦截“net :: ERR_CONNECTION_REFUSED”

我试图用$http'的拦截器为我的网站编写一个通用的error handling程序,但他们似乎无法做我想做的事情。

我在'response''responseError'放置了拦截器,但是当服务器离线/不响应时(net :: ERR_CONNECTION_REFUSED),它们不会被调用。 我明白为什么会发生这种情况,对拦截没有反应。

我想知道是否有捕获这些错误的通用方法,除了听每个请求$httpPromiseerrorcallback。

您可能可以检查ResponseError的状态。 当一个API离线的时候是0(直到Angular 1.3.18)或者-1(从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); } }; }); });