問題タブ [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.
angularjs - インターセプターでAjaxリクエストを行う
既にログインしているかどうかを確認するインターセプターを AngularJS で作成しようとしています。これは、$rootScope.user
変数を調べることによって行われます。
$rootScope.user
変数が存在しない場合は、Ajax 呼び出しを行って、サーバー上にまだセッションが存在するかどうかを確認します。
問題は、インターセプターがすべての Ajax リクエストをインターセプトしているため、無限ループになってしまうことです...
私は基本的にこれを持っています:
しかし、これは機能しません。次のエラーが発生します。
または $http と同じ:
では、どうすればこの問題を解決できますか? データベースからユーザー情報を取得できるように、インターセプターから Ajax リクエストを実行したいと考えています。
注意: ヘッダーでトークンを使用するなど、ある種の認証方法を実装するには、さまざまな、おそらくより良い方法があることを私は知っています。私はそれを認識しており、別のより優れた認証方法についての回答を探しているわけではありません。この特定の問題についての回答が欲しいです。
angularjs - Angular 応答インターセプターが RestAngular で機能しない
次のコードがあります。
スピナーを切り替えるための基本的なインターセプター。
インターセプターは、パーシャルをフェッチする http リクエストと内部の角度要素に対してはうまく機能しますが、RestAngular リクエスト ($http のラッパー) に対しては機能しません。
どんな助けでも大歓迎です。
javascript - Restangular リクエスト インターセプターでスコープ オブジェクトを取得する
ng-repeat 内の各リソース オブジェクトの読み込み状態が必要です。Restangulars addRequestInterceptor は要素を返しますが、angular $scope にリンクされていないようです。指定された引数から $scope オブジェクトを取得する方法はありますか?
javascript - Angular 1.3.0 は JSON 応答を尊重しますが、Angular の前にこれをオーバーライドするか、応答を事前解析するにはどうすればよいですか?
Angular の最新リリース (v1.3.0) では、application/json の content-type ヘッダーの修正が追加されました。現在、有効な JSON ではないため、すべての応答でエラーが発生します。プレーン テキスト ヘッダーで応答するようにバックエンドを変更する必要があることはわかっていますが、現時点ではそれを制御できません。Angular が応答を解析する前に応答を事前に解析する方法はありますか?
これが彼らが行った修正だと思います: https://github.com/angular/angular.js/commit/7b6c1d08aceba6704a40302f373400aed9ed0e0b
私が抱えている問題は、バックエンドから取得した応答に、Angular がチェックしているものと一致しない保護プレフィックスがあることです。
構成に http インターセプターを追加しようとしましたが、それは役に立たず、Angular 自体の後で解析します。
コンソールに表示されるエラー (Angular での JSON 文字列の逆シリアル化によるものです):
javascript - トランスフォーマーとインターセプターの適切な使用
ユーザーのプロファイルを更新するためにサービス層のエンドポイントに POST する場合、要求ペイロード (クライアントからの必要な変更を含むプロファイル) から特定の値を削除し、それらを応答ペイロード (からの更新されたプロファイル) に再アタッチする必要があります。サーバー)。私は現在、次のように、 Angular のrequest および response トランスフォーマーを使用して動作を実行しています。
デフォルトのリクエスト トランスフォーマーにトランスフォーマーを追加し、デフォルトのレスポンス トランスフォーマーにトランスフォーマーを追加します。私の質問は、これを行うためのより良い方法はありますか? ここに記載されているように、代わりにインターセプターを使用している可能性がありますか? もしそうなら、どのように?
javascript - Angular js の $http インターセプターについて混乱しています
Angular js の http インターセプターに関する適切なドキュメントを実際に見つけることができません。エラーを処理している間、これを使用してng-include
インターセプトできます。responseError
このコードは、この質問how to catch angular ng-include errorから取得されました。わかりません、インターセプターはどのように機能しますか? 彼らは何を返さなければなりませんか?インターセプターrejection
に渡されたパラメーターの使用方法は? プロパティでは、失敗したディレクティブの場所にエラー メッセージを含めるために使用されますが、responseError
これはどのように機能しますか?rejection
data
ng-include
angularjs - インターセプターでAngularJSリダイレクトが発生しない
非常に単純なインターセプターを使用して、ユーザーをログインにリダイレクトするために 403 Access Forbidden の responseRejection をチェックしていますが、リダイレクトされません。$location.path の前とその後の行まで console.log を実行できますが、それは発生しません。他の誰かがこれを起こしたことがありますか?私はこれを少し見つめてきました...もともと私は $location を使用したくありませんでしたが、循環依存関係を取得せずに ui.router を注入することはできません。私がそれについて考えている間、 $location は私を動かし続けるはずだったので、取り除くために。
angularjs - AngularJs httpprovider.interceptors responseError のステータスが正しくありません
サーバーが 401 エラーを返した場合に、ユーザーをログイン ページにリダイレクトする単純なインターセプターを作成しました。ステータスが 404 に設定されているため機能していないため、 $location は呼び出されません。
angularjs - toState の http $interceptor $state プロパティ
私は現在 httpInterceptor を持っており、次の方法で現在の状態名にアクセスできます。
しかし、私が取得したいのは、それが進んでいる状態でもあり、プロパティが見つかりません
さらに詳しく説明すると、私は ionic を使用しており、Im はリクエストに読み込みインジケーターを表示しています。
to と from の状態に基づいてローディング インジケーターのテキストを選択的に変更したいので、$ionicLoading を 1 つの場所に保持します。