$http'
sインターセプターを使用して、Webサイトの汎用エラーハンドラーを記述しようとしていますが、やりたいことを実行できないようです。
インターセプターを'response'
および'responseError'
に配置しましたが、サーバーがオフラインであるか応答していない場合(net :: ERR_CONNECTION_REFUSED)は呼び出されません。私はこれがなぜ起こるのか理解しています、傍受する応答がありません。
リクエストごとに$httpPromise
のerror
コールバックをリッスンする以外に、これらのエラーをキャッチする一般的な方法があるかどうかを知りたいです。
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);
}
};
});
});