262

React と Redux を使用してフロントエンド アプリを構築しており、axiosを使用してリクエストを実行しています。応答のヘッダーにあるすべてのフィールドにアクセスしたいと考えています。ブラウザでヘッダーを調べると、必要なすべてのフィールド (token、uid など) が存在することがわかりますが、呼び出すと

const request = axios.post(`${ROOT_URL}/auth/sign_in`, props);
request.then((response)=>{
  console.log(response.headers);
});

私はただ得る

Object {content-type: "application/json; charset=utf-8", cache-control: "max-age=0, private, must-revalidate"}

他のすべてのフィールドが表示されていることがわかるように、ここに私のブラウザのネットワーク タブがあります。

ここに画像の説明を入力

ベスト。

4

14 に答える 14

460

CORS リクエストの場合、ブラウザはデフォルトで次のレスポンス ヘッダーにのみアクセスできます。

  • キャッシュ制御
  • コンテンツ言語
  • コンテンツ タイプ
  • 期限切れ
  • 最終更新日
  • プラグマ

クライアント アプリが他のヘッダーにアクセスできるようにする場合は、サーバーでAccess-Control-Expose-Headersヘッダーを設定する必要があります。

Access-Control-Expose-Headers: Access-Token, Uid
于 2016-06-20T20:15:10.783 に答える
1

CORS が適切に構成されたバックエンド側に Laravel 8 を使用している場合は、次の行を に追加しますconfig/cors.php

'exposed_headers' => ['Authorization'],

于 2020-10-23T19:44:36.717 に答える
0

django-cors-headersなしで Django を使用している場合は、カスタム ミドルウェアを作成できます。

class CustomCorsMiddleware:
    def __init__(self, get_response):
        self.get_response = get_response

    def __call__(self, request):
        response['Access-Control-Expose-Headers'] = 'MY-HEADER, ANOTHER-HEADER'

        return response

ここで他の CORS ヘッダーを設定することもできます。

MIDDLEWARE次に、プロジェクトのsettings.pyファイルのリストの先頭にミドルウェアを挿入して、ミドルウェアを登録する必要があります。

MIDDLEWARE = [
    'myapp.middleware.CustomCorsMiddleware',
    ...
]
于 2022-02-22T16:58:36.020 に答える