ホームページ > バックエンド開発 > Golang > 私のブラウザがクロスオリジンリクエストからの Cookie を保存しないのはなぜですか?

私のブラウザがクロスオリジンリクエストからの Cookie を保存しないのはなぜですか?

Linda Hamilton
リリース: 2024-11-24 20:49:18
オリジナル
299 人が閲覧しました

Why Won't My Browser Store Cookies from Cross-Origin Requests?

ブラウザがクロスオリジンリクエストでの Cookie の保存を拒否する

問題の説明:

Go サーバーを使用する React アプリケーションログイン要求の応答で送信された Cookie を正常に設定したにもかかわらず、それを保存する際に問題が発生しました。 Cookie はネットワーク タブに表示されますが、ブラウザ (Chrome および Firefox) では保存されません。

根本原因と解決策:

さらに調査すると、不足している要素はフェッチ リクエスト内の「資格情報」フラグであることが判明しました。 「credentials: "include"」を設定すると、ブラウザーは応答で受信した Cookie を処理して保存できるようになります。修正されたフェッチ リクエストは次のとおりです:

fetch(`${url}/login`, {
    method: "POST",
    headers: {
        "Content-Type": "application/json",
    },
    credentials: "include", // This here
    body: JSON.stringify({
        email: userDetails.email,
        password: userDetails.password,
    }),
}).then((response) => { ...
ログイン後にコピー

追加の注意事項:

  • サーバーが CORS ハンドラーで構成されていることを確認し、クロスオリジン リクエストを許可します。 credentials.
  • カスタム CORS 構成の場合は、「AllowCredentials」を次のように設定します。 true.
  • 応答ヘッダーを検証して、Cookie が期待どおりに設定されていることを確認します。

以上が私のブラウザがクロスオリジンリクエストからの Cookie を保存しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート