Angular.jsを使用した単一ページのWebアプリケーションで認証を実装したいと考えています。 official Angular documentationはインターセプタの使用をお勧めします。Angular.jsインターセプタでHTTP 401をキャプチャ
$provide.factory('myHttpInterceptor', function($q, dependency1, dependency2) {
return {
// ...
'responseError': function(rejection) {
// do something on error
if (canRecover(rejection)) {
return responseOrNewPromise
}
return $q.reject(rejection);
}
};
});
問題は、サーバーが401エラーを送信するときの認証HTTPヘッダーがによって送信されたときに、ブラウザがすぐに(「無許可」のメッセージとともに、またはログインポップアップウィンドウで停止していますサーバー)、Angularは、傍受者が処理するHTTPエラーをキャプチャすることはできません。私は何かを誤解していますか?私はもっと多くの例をウェブ上で見つけようとしましたが(例えば、this、thisおよびthis)、それらのどれも働いていませんでした。アプリのconfigブロックで
についてあなたは今まで、これは考え出しましたか私はまったく同じ問題を抱えています –
バンプ、ここと同じ! – Romain
同じですが、答えはありません。インターセプタは機能しますが、例外はインターセプタの前にスローされます。これは変ですか? – windmaomao