Ajax クロスドメインリクエストに Cookie を添付する方法
今回は、Ajax クロスドメインアクセス時の Cookie 消失問題の解決方法を紹介します。Ajax クロスドメインアクセス時の Cookie 消失問題を解決するための注意点を以下に挙げます。見てください。
実際のプロジェクト開発では、フロントエンドとバックエンドが分離されているプロジェクトが必ず発生します。また、そのようなプロジェクトでは、最初に解決すべき問題がユーザー情報の保存です。ただし、セッションと Cookie を組み合わせる方法は、通常、バックグラウンドでユーザー情報を保存するために使用されることが非常に重要です。フロントエンドの実際の状況では、ドメイン間で生成された ajax は Cookie 情報を運ぶことができないため、セッションと Cookie のユーザー情報が失われる ストレージ モードが影響を受ける このような問題を解決するには、angularJS の $http の ajax リクエストを例に挙げます。
まず、バックグラウンドでサーブレット フィルターを使用してすべてのリクエストをインターセプトし、リクエスト ヘッダーを設定します。
// 解决跨越问题
response.setHeader("Access-Control-Allow-Origin", "*"); response.setHeader("Access-Control-Allow-Methods", "*"); response.setHeader("Access-Control-Max-Age", "3600"); response.setHeader("Access-Control-Allow-Headers", "DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization,SessionToken");
// 允许跨域请求中携带cookie response.setHeader("Access-Control-Allow-Credentials", "true");
コードの上記の部分は次のとおりです。クロスドメインの問題を解決する 問題のコード、response.setHeader("Access-Control-Allow-Credentials", "true"); の 2 番目の部分は、バックエンドでの Cookie の送信を許可するコードです。
フロントエンド コード:
$scope.login = function () { $http({ // 设置请求可以携带cookie withCredentials:true, method: 'post', params: $scope.user, url: 'http://localhost:8080/user/login' }).then(function (res) { alert(res.data.msg); }, function (res) { if (res.data.msg) { alert(res.data.msg); } else { alert('网络或设置错误'); } }) }
上記のコードから、次のことを知るのは難しくありません。フロントエンドのクロスドメインリクエストで最も重要な点は withCredentials:true です。このステートメントは、バックグラウンドで設定された「Access-Control-Allow-Credentials」および「true」と組み合わせることで、クロスドメインで Cookie を送信できます。ドメイン Ajax リクエスト。
しかし、テスト中にいくつかの問題が見つかりました。リクエストが送信されると、ブラウザーは次のエラーを報告しました。
プリフライト リクエストへの応答アクセス制御チェックに合格しません: 資格情報フラグが true の場合、ワイルドカード '*' を 'Access-Control-Allow-Origin' ヘッダーで使用することはできないため、資格情報へのアクセスは許可されません。
XMLHttpRequest のモードは withCredentials 属性によって制御されます。
関連情報を調べた結果、その理由はクロスドメイン コードの応答を解決するためであることがわかりました。setHeader("Access-Control- Allow-Origin", "*"); この部分は、Cookie を運ぶクロスドメインの設定の部分と競合します。関連情報を確認したところ、Cookie を運ぶためにクロスドメインの Ajax リクエストを設定するときに、Access-Control-これは、Allow-Origin を指定する必要があります。これは、その値を * にすることはできません。ただし、フロントエンドとバックエンドを分離すると、フロントエンドの IP が変わることを考えると、原点に戻ったように感じます。 . この方法を使用して、Ajax クロスドメインと Cookie の転送の問題を解決することはできませんか?
次に、私が行った ajax リクエストの調査中に、angularJS ではすべてのリクエストの Origin リクエスト ヘッダーの値が「null」であることがわかりました。これはどういう意味ですか?そこで、背景の "Access-Control-Allow-Origin"、"*" を "Access-Control-Allow-Origin"、"null" に変更しました。すると、次は素晴らしいことになり、付随する Cookie がすべて成功しました。目的を達成しました。
response.setHeader("Access-Control-Allow-Origin", "null");
関連する推奨事項:
JavaScript (Ajax) および Cookie 同一生成元ポリシー
AjaxクロスドメインリクエストはCookieを使用できません
以上がAjax クロスドメインリクエストに Cookie を添付する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

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

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









タイトル: jQuery AJAX リクエストの 403 エラーを解決する方法とコード例。403 エラーは、サーバーがリソースへのアクセスを禁止するリクエストを指します。このエラーは通常、リクエストにアクセス許可がないか、サーバーによって拒否されたために発生します。 jQueryAJAX リクエストを行うときにこのような状況に遭遇することがありますが、この記事ではこの問題の解決方法とコード例を紹介します。解決策: 権限を確認します。まず、要求された URL アドレスが正しいことを確認し、リソースにアクセスするための十分な権限があることを確認します。

jQuery は、クライアント側の開発を簡素化するために使用される人気のある JavaScript ライブラリです。 AJAX は、Web ページ全体をリロードせずに、非同期リクエストを送信し、サーバーと対話するテクノロジーです。ただし、jQuery を使用して AJAX リクエストを行うと、403 エラーが発生することがあります。 403 エラーは通常、セキュリティ ポリシーまたは権限の問題が原因で、サーバーによってアクセスが拒否されたエラーです。この記事では、jQueryAJAX リクエストで 403 エラーが発生した場合の解決方法について説明します。

PHP と Ajax を使用してオートコンプリート候補エンジンを構築します。 サーバー側スクリプト: Ajax リクエストを処理し、候補を返します (autocomplete.php)。クライアント スクリプト: Ajax リクエストを送信し、提案を表示します (autocomplete.js)。実際のケース: HTML ページにスクリプトを組み込み、検索入力要素の識別子を指定します。

インターネットの普及により、ブラウザを使用してインターネットを閲覧することが生活様式になりました。ブラウザを日常的に使用する中で、オンラインショッピング、ソーシャルネットワーキング、電子メールなど、アカウントのパスワードを入力する必要がある場面に遭遇することがよくあります。この情報は、次回アクセスするときに再度入力する必要がないようにブラウザによって記録される必要がありますが、このような場合に Cookie が役に立ちます。クッキーとは何ですか? Cookie とは、サーバーからユーザーのブラウザに送信され、ローカルに保存される小さなデータ ファイルを指し、一部の Web サイトでのユーザーの行動が含まれています。

jQueryAJAX エラー 403 の問題を解決するにはどうすればよいですか? Web アプリケーションを開発する場合、非同期リクエストを送信するために jQuery がよく使用されます。ただし、jQueryAJAX の使用時に、サーバーによってアクセスが禁止されていることを示すエラー コード 403 が発生する場合があります。これは通常、サーバー側のセキュリティ設定が原因ですが、回避する方法があります。この記事では、jQueryAJAX エラー 403 の問題を解決する方法と具体的なコード例を紹介します。 1.作る

Ajax を使用して PHP メソッドから変数を取得することは、Web 開発では一般的なシナリオであり、Ajax を使用すると、データを更新せずにページを動的に取得できます。この記事では、Ajax を使用して PHP メソッドから変数を取得する方法と、具体的なコード例を紹介します。まず、Ajax リクエストを処理し、必要な変数を返すための PHP ファイルを作成する必要があります。以下は、単純な PHP ファイル getData.php のサンプル コードです。

Cookie 設定に関する一般的な問題と解決策、具体的なコード例が必要です インターネットの発展に伴い、Cookie は最も一般的な従来技術の 1 つとして、Web サイトやアプリケーションで広く使用されています。簡単に言うと、Cookie はユーザーのコンピュータに保存されるデータ ファイルで、ログイン名、ショッピング カートの内容、Web サイトの設定などを含むユーザーの情報を Web サイトに保存するために使用できます。 Cookie は開発者にとって不可欠なツールですが、同時に Cookie の設定が頻繁に必要になります。

私たちはコンピューターやインターネットを日常的に使用する中で、Cookie にさらされることがあります。 Cookie は、Web サイトへの訪問、設定、その他の情報の記録を保存する小さなテキスト ファイルです。この情報は、当社へのサービスを向上させるためにウェブサイトで使用される場合があります。しかし、場合によっては、必要なコンテンツを見つけるために Cookie 情報を見つける必要があります。では、ブラウザで Cookie を見つけるにはどうすればよいでしょうか?まず、Cookie がどこに存在するかを理解する必要があります。ブラウザで
