[解決済み] Angular - すべてのリクエストにヘッダを設定する
2022-03-15 13:14:12
質問
ユーザーがログインした後、それ以降のリクエストに対して、いくつかのAuthorizationヘッダを設定する必要があります。
特定のリクエストのヘッダーを設定する。
import {Headers} from 'angular2/http';
var headers = new Headers();
headers.append(headerName, value);
// HTTP POST using these headers
this.http.post(url, data, {
headers: headers
})
// do something with the response
しかし、この方法ですべてのリクエストに対してリクエストヘッダを手動で設定することは現実的ではないでしょう。
ユーザーがログインした後に設定されるヘッダーを設定し、またログアウト時にそのヘッダーを削除するにはどうすればよいですか?
どのように解決するのですか?
この質問に対する答えとして、オリジナルの
Http
オブジェクトを作成します。以下のようなものです。
import {Injectable} from '@angular/core';
import {Http, Headers} from '@angular/http';
@Injectable()
export class HttpClient {
constructor(private http: Http) {}
createAuthorizationHeader(headers: Headers) {
headers.append('Authorization', 'Basic ' +
btoa('username:password'));
}
get(url) {
let headers = new Headers();
this.createAuthorizationHeader(headers);
return this.http.get(url, {
headers: headers
});
}
post(url, data) {
let headers = new Headers();
this.createAuthorizationHeader(headers);
return this.http.post(url, data, {
headers: headers
});
}
}
そして、インジェクションの代わりに
Http
オブジェクトを注入することができます。
HttpClient
).
import { HttpClient } from './http-client';
export class MyComponent {
// Notice we inject "our" HttpClient here, naming it Http so it's easier
constructor(http: HttpClient) {
this.http = httpClient;
}
handleSomething() {
this.http.post(url, data).subscribe(result => {
// console.log( result );
});
}
}
また、マルチプロバイダを利用して
Http
を拡張した独自のクラスを提供することで
Http
というのがあるんですが... このリンクを参照してください。
http://blog.thoughtram.io/angular2/2015/11/23/multi-providers-in-angular-2.html
.
関連
-
[解決済み] Angular HTMLバインディング
-
[解決済み] Angular:*ngClassを使った条件付きクラス
-
[解決済み] モジュール "@angular-devkit/build-angular" が見つかりませんでした。
-
[解決済み] 現在のルートを取得する方法
-
[解決済み] Angularプロジェクトごとに生成される膨大な数のファイル
-
[解決済み] Angular 2の "select "で新しい選択範囲を取得するにはどうすればよいですか?
-
[解決済み] Angularのエラーです。"Can't bind to 'ngModel' because it isn't a known property of 'input'"."
-
[解決済み】コンポーネントのプロパティが現在の日付時間に依存している場合、Angular2の「expression has changed after it was checked」例外を管理する方法
-
[解決済み] NgModule.schemasにCUSTOM_ELEMENTS_SCHEMAを追加してもエラーが表示される。
-
[解決済み] AngularのHttpClientでエラーをキャッチする
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Angularが報告するインジェクションエラーとその解決方法...$injector:unpr]。
-
[解決済み] ルーターリンク]と[ルーターリンク]の違いについて
-
[解決済み] Angular [disabled]="MyBoolean "が動作しない。
-
[解決済み] 現在のルートを取得する方法
-
[解決済み] オブジェクトのキーと値に*ngForでアクセスする
-
[解決済み] 最後のページに戻るには
-
[解決済み] Angular HTTP GET with TypeScript エラー http.get(...).map is not a function in [null].
-
[解決済み] npm start」と「ng serve」はいつ使う?
-
[解決済み] Angular HttpClient "パース中のHttp失敗"
-
[解決済み] Angular2の変更検出:ネストされたオブジェクトに対してngOnChangesが発生しない