ホームページ ウェブフロントエンド jsチュートリアル Ajax クロスドメインリクエストに Cookie を添付する方法

Ajax クロスドメインリクエストに Cookie を添付する方法

Sep 13, 2018 pm 05:26 PM
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 サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

jQuery AJAX リクエストで発生した 403 エラーを解決する方法 jQuery AJAX リクエストで発生した 403 エラーを解決する方法 Feb 20, 2024 am 10:07 AM

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

jQuery AJAXリクエスト403エラーを解決する方法 jQuery AJAXリクエスト403エラーを解決する方法 Feb 19, 2024 pm 05:55 PM

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

PHP と Ajax: オートコンプリート提案エンジンの構築 PHP と Ajax: オートコンプリート提案エンジンの構築 Jun 02, 2024 pm 08:39 PM

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

ブラウザの Cookie が保存される場所の詳細な説明 ブラウザの Cookie が保存される場所の詳細な説明 Jan 19, 2024 am 09:15 AM

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

jQuery AJAX エラー 403 の問題を解決するにはどうすればよいですか? jQuery AJAX エラー 403 の問題を解決するにはどうすればよいですか? Feb 23, 2024 pm 04:27 PM

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

Ajaxを使用してPHPメソッドから変数を取得するにはどうすればよいですか? Ajaxを使用してPHPメソッドから変数を取得するにはどうすればよいですか? Mar 09, 2024 pm 05:36 PM

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

Cookie 設定に関するよくある質問と解決策 Cookie 設定に関するよくある質問と解決策 Jan 19, 2024 am 09:08 AM

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

ブラウザで Cookie を見つける方法 ブラウザで Cookie を見つける方法 Jan 19, 2024 am 09:46 AM

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

See all articles