問題タブ [angular-http-interceptors]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
61 参照

javascript - リソース/インターセプターで 4XX http コードを処理する

HTTP4XXステータス コードを処理するためのソリューションが必要です。私はこのようなエラーインターセプターを持っていました

そしてHTMLでは、エラーは次のように表示されます

エラーが表示された場合、ユーザーは再度ログインする必要があります (または別の方法でログインする必要があります)。これにより、アプリケーションのフローが停止します。

しかし、私には多くのリソースがあり、このエラー メッセージを表示しても問題ない人もいますが、エラー コールバックでエラーを自分で処理する必要がある人もいます。

この問題を解決するための最良の戦略/解決策は何ですか?

0 投票する
1 に答える
560 参照

angularjs - 認証が失敗すると、Angular $http Interceptor が複数のモーダルを開く

$http interceptor失敗したときにログインモーダルを表示するために使用してい$authます。ここに私が持っている簡単なセットアップがあります:

上記のコードは正常に動作します。しかし、私が抱えている問題は、API が複数の認証失敗エラーをスローすると、インターセプターが複数のモーダルを同時に開くことです。通常、1 ページでバックエンド API に接続するさまざまなサービスが 2 ~ 3 回あり、認証が失敗すると、それらのすべての API が無効なトークンの間に認証失敗エラーを返します。このインターセプターは、3 つの take_invalid エラーとしてそれを検出し、3 つのログイン モーダルを 1 つずつ重ねて表示します。これを防ぐにはどうすればよいですか?

認証失敗が何回発生しても、インターセプターが 1 つのログインモーダルのみを表示するようにするにはどうすればよいですか?

私のサービスは次のようになります。

サービスでは$rootScope.loginProgress、ログインモーダルが開いているかどうかを判断するためのスイッチとして使用しようとしています。$rootScope.loginProgressただし、モーダルが既に開かれている場合(true の場合)に空の promise を返す方法がわかりません。

0 投票する
2 に答える
902 参照

angularjs - サーバーから取得した値でangular $httpを構成します

トークンがヘッダーに挿入される (最初の) 角度付きアプリを構築しています (表示されるコンテンツの大部分はここから取得されます) 。

angular.module('myApp')

私が抱えている問題はSessionService、サーバーへの呼び出しでこれを初期化するにはどうすればよいですか?

たとえば、これはうまくいきませんでした:

CPUが100%に過負荷になるだけなので...

初めてのAngularアプリなので、何か足りないと思いますが...何ですか?

編集
問題の別の見方...それでも機能しません...(繰り返しますが、CPUを使い果たし、おそらく無限ループです)

0 投票する
1 に答える
775 参照

javascript - Angular JS httpインターセプター非同期呼び出し無限ループ

こんにちは、AngularJS の http インターセプターの応答メソッドで非同期呼び出しを実行しようとしています。非同期呼び出しが発生しますが、無限ループに陥り、非同期呼び出しが何度も呼び出されます...理由はわかりませんが、エラーは非同期呼び出しの構造に関係していると思います

app.service('Ace',['$http','$q','$injector', '$window', function($http, $q, $injector, $window){

0 投票する
1 に答える
591 参照

javascript - AngularJS:終了するまで「実行」メソッドにとどまる方法

簡単なシナリオがあります-ヘッダーに値(ある種のトークン)を追加するインターセプターでhttp呼び出しを開始したいと思います。

問題は、トークンがhttp経由でも受信されることです(最初の呼び出しである必要があります)が、他のすべての呼び出しを行って、独自の呼び出しを発行する前に終了するのを待つ方法がわかりません...

問題はTestCtrl、メソッドがトークンの取得を完了する前に http 呼び出しを発行することですrun(その結果、ヘッダー値の値に[uninitialized-token]が含まれます)。

「実行」非同期メソッドが完了するまでコントローラーを待機させるにはどうすればよいですか?

0 投票する
0 に答える
1050 参照

javascript - インターセプター - トークン - AngularJS

私は AngularJS を初めて使用し、作成したインターセプターと restAPI に問題があります。

インターセプターのコードは次のとおりです。

作成した残りの API からの呼び出しは次のようになります。

{headers: {'x-access-token': $localStorage.token}} を $http に送信すると、restapi は問題なく動作しますが、これを削除するとエラー 403 (禁止) で失敗します

これをすべての GET API に追加することにしましたが、POST では期待どおりに動作しません。私の POST API は次のようになります。

私が間違っていることは何ですか?GET または POST 操作でヘッダーを送信しないようにするには、インターセプターで何を変更する必要がありますか?

0 投票する
1 に答える
2074 参照

angularjs - ヘッダーの Relangular レスポンス インターセプター

angularアプリからサーバー側にデータを通信しています。サーバーはトークンを作成し、それをヘッダーに送信します。Restangular を使用して応答を傍受し、localStorage に保存する方法を探しています。私は成功していません。

私はアプリの.configでこのようなことをしていました

次に、HttpInterceptor で Storage を呼び出してヘッダーを格納していました。しかし、いくつかのエラーが発生しており、これを理解できませんでした。

前もって感謝します!