実際に、私たちのバックエンドはリクエストヘッダーにCookieを使ってリクエストを認証します。私はヘッダー "Cookie"を設定するとそれが拒否されることを知っています。では、バックエンドにCookieを送信する方法はありますか?Angular2のすべてのリクエストのリクエストヘッダに「Cookie」を送信するにはどうすればよいですか?
19
A
答えて
38
私は、サーバーにあなたの認証を依頼する段階があると思います。これに続いて(認証が成功した場合)、サーバーは応答内のクッキーを返します。ブラウザはこのクッキーを保存し、各呼び出しごとに再度送信します。
クロスドメインリクエスト(CORS)の場合、ブラウザで要求にCookieを追加するには、XHRのwithCredentials
をtrue
に設定する必要があります。
Angular2でこれを可能にするために、我々は、以下のようにBrowserXhr
クラスを拡張する必要があります:
@Injectable()
export class CustomBrowserXhr extends BrowserXhr {
constructor() {}
build(): any {
let xhr = super.build();
xhr.withCredentials = true;
return <any>(xhr);
}
}
と拡張とBrowserXhr
プロバイダオーバーライドします。詳細については、この質問を参照してください
bootstrap(AppComponent, [
HTTP_PROVIDERS,
provide(BrowserXhr, { useClass: CustomBrowserXhr })
]);
を:
編集(以下freakerのコメント)
RC2から、以下に述べるように、あなたは要求構成内で直接withCredentials
プロパティを使用することができます。
this.http.get('http://...', { withCredentials: true })
編集([maxou]のコメントに続いて)
withCredentialsを含めることを忘れないでください。ごとにに真。
関連する問題
- 1. 複数のCookieでWebリクエストを送信するにはどうすればよいですか?
- 2. --headerオプションを使用してSiegeでCookieを送信するにはどうすればよいですか?
- 3. Backbone.jsがOPTIONSリクエストを送信しないようにするにはどうすればよいですか?
- 4. jQuery.get()リクエストで、ハッシュの配列をパラメータとして送信するにはどうすればよいですか?
- 5. SalesforceアップデートのPATCHメソッドを使用してリクエストを送信するにはどうすればよいですか?
- 6. ページのアンロード時にAJAXリクエストをキャンセルせずに送信するにはどうすればよいですか?
- 7. ELMAH - エラーログにHTTPリクエスト本文とHTTPリクエストヘッダを記録するにはどうすればよいですか?
- 8. アレイリストのすべてのデータを別のアクティビティに送信するにはどうすればいいですか?
- 9. 送信者とProcmailを使用するすべての受信者に自動返信を送信するにはどうすればよいですか?
- 10. javaで単一のHTTPリクエストでオブジェクトとファイルを送信するにはどうすればよいですか?
- 11. Facebook APIを使用して招待リクエストを送信するにはどうすればよいですか?
- 12. cronジョブを使用してHTML GETリクエストを送信するにはどうすればよいですか?
- 13. ヘッダーパラメータを使用してHTTPリクエストを送信するにはどうすればよいですか?
- 14. 実際の生のリクエストが送信されるのを見るにはどうすればいいですか
- 15. サーバにリクエストを送信中にデバイス情報を追加するにはどうすればよいですか?
- 16. httpurlconnectionでパラメータを取得するリクエストを送信するにはどうすればよいですか?
- 17. Railsテストケースであいまいなリクエストを送信するにはどうすればよいですか?
- 18. HTTPS経由でnode.jsサーバーにAJAXリクエストを送信するにはどうすればよいですか?
- 19. プロキシを使用してTwitterにリクエストを送信するにはどうすればいいですか?
- 20. REST APIにリクエストを送信したページを取得するにはどうすればよいですか?
- 21. セントラルエリアにデータを送信するにはどうすればよいですか?
- 22. Stimulsoftにパラメータを送信するにはどうすればよいですか?
- 23. ロードバランサにHTTPリクエストを送信するにはどうすればよいですか?
- 24. HTTPリクエストをファイルに送信するにはどうすればよいですか?
- 25. AppEngineのカスタム「送信元」アドレスで電子メールを送信するにはどうすればよいですか?
- 26. すべてのリクエストに対してクエリパラメータを指定するにはどうすればよいですか?
- 27. HTTPリクエストを送信してPHPで応答を取得するにはどうすればいいですか?
- 28. AndroidでHttpClientリクエストでJSONオブジェクトを送信するにはどうすればよいですか?
- 29. 携帯電話からTCPリクエストを送信するにはどうすればよいですか?
- 30. キーイベントをAndroidで送信するにはどうすればよいですか?
この機能は現在angular2に追加されました。 'http.get(url、{withCredentials:true})'のようなことを単に行うことができるようになりましたので、この便利な回避策はもう必要ありません(2.0.0-rc4以前)。 – freaker
はい、そうです。私はRC2で追加されました。それに応じて私の答えを更新しました。これを指摘してくれてありがとうございます;-) –
'withCredentials'を使うと、応答の' Set-Cookie'がクライアントによって設定されますが、依然としてクライアントは 'Cookie'をリクエスト(以前のリクエストで設定されたもの) – maxbellec