自分のプロジェクトのログイン登録ページを作成するとき、登録およびパスワード変更機能は電子メール検証を使用するため、バックエンドは検証コードを送信するときに応答データに Cookie を追加します
Cookie cookie = new Cookie(toEmail.split("@")[0],verCode); cookie.setMaxAge(30*60); response.addCookie(cookie);
その後、クリックしてパスワードを登録または変更すると、バックエンドはリクエストから Cookie を取得して電子メールと確認コード情報を取得します
Cookie[] cookies = request.getCookies();
ローカルでテストする場合、Cookie は応答に正しく追加でき、また、正しく取得できました
しかし、プロジェクトをクラウドにパッケージ化してから ajax アクセスを実行すると、問題が発生しました。Cookie の取得に失敗しました!
レスポンス ヘッダーには set-Cookie が明確にありますが、2 番目のリクエスト ヘッダーには Cookie が見つかりません。
サーバーは Cookie の取得に失敗し、エラーを報告します。Cookie を使用して、パスワードの登録と変更が無効です。ドキュメントを検索したところ、エラーの原因は Springboot と Ajax のクロスドメイン Cookie 損失の問題であることがわかりました。バックエンドは初めてなので、
私は自分の投稿のみを投稿します解決策はこちらです
1. Ajax リクエストは xmlhttp.withCredentials = true; #3. コントローラーの API で応答の応答ヘッダーを設定します。 キー
は「Access-Control-Allow-Origin」アクセス制御許可ソース、http リクエストヘッダー情報、許可リソース共有の設定 (クロスドメイン) ソースvar xmlhttp = new XMLHttpRequest(); xmlhttp.withCredentials = true; xmlhttp.open("GET", readyUrl, true); xmlhttp.send();
value は request.getHeader(" Origin") を表します。 プロトコルとドメイン名
ページの組み合わせ 現在リクエストされているリソースが存在する場所 これらは一緒に意味します 現在リクエストされているリソースのバックエンドへのアクセスを許可しますドメイン間のリソース
これら 3 つの部分を設定した後、Cookie を再度取得できます2022 年 12 月 9 日更新:
見つかりましたクロスドメイン リクエスト フィルターを追加するためのより簡潔で便利な方法Druid データ プール依存関係パッケージの StringUtils.isEmpty メソッドを使用しました。エラーが報告された場合は、自分で置き換えを記述するだけです
package com.crisp.myblog.config; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.CorsRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @Configuration public class corsConfig implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") //是否发送Cookie .allowCredentials(true) //放行哪些原始域 .allowedOriginPatterns("这里填你前端代码所在的域名:端口") .allowedMethods(new String[]{"GET", "POST", "PUT", "DELETE"}) .allowedHeaders("*") .exposedHeaders("*"); } }
以上がSpringBoot での Ajax クロスドメインと Cookie の失敗の問題を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境
