ホームページ  >  記事  >  バックエンド開発  >  javascript - 第 2 レベル ドメイン名の Cookie は取得できるのに、Ajax を使用して自動的に送り返すことができず、Cookie をクロスドメインにできないのはなぜですか?

javascript - 第 2 レベル ドメイン名の Cookie は取得できるのに、Ajax を使用して自動的に送り返すことができず、Cookie をクロスドメインにできないのはなぜですか?

WBOY
WBOYオリジナル
2016-08-18 09:16:14961ブラウズ

シナリオ再発プロセス:

リーリー リーリー

マシン A はフロントエンド JS コードであり、サービスを開始し、ブラウザ上でマシン B (サーバー側を表す) の最初のアドレス http://b.site.com:8080/login/... をリクエストします。 , サーバーはリクエストと同時に Cookie を挿入します。Cookie のキーを「site」、値を「date」、ドメインを .site.com、パスを /
に設定します。ブラウザーでページにアクセスし、新しいページ http://a.site.com:8080/index でリクエストを行うと、Chrome コンソール
http://b.site.com:8080/
から挿入された Cookie を確認できます。 、しかし...ajax経由 インターフェイス中に、Cookieがリクエストヘッダーに表示されませんでした。get、post、非同期、同期などのさまざまなメソッドを試しましたが、どれも機能しませんでした。最後に、jsonpメソッドを使用してCookieが登場しました

使いにくいコードは次のとおりです:
リーリー

便利なコードは次のとおりです:

リーリー

問題を解決できる場合は、専門家に助けを求めてください。ありがとうございます。

返信内容:

シナリオ再発プロセス:

リーリー リーリー

マシン A はフロントエンド JS コードであり、サービスを開始し、ブラウザ上でマシン B (サーバー側を表す) の最初のアドレス http://b.site.com:8080/login/... をリクエストします。 , サーバーはリクエストと同時に Cookie を挿入します。Cookie のキーを「site」、値を「date」、ドメインを .site.com、パスを /

に設定します。ブラウザーでページにアクセスし、新しいページ http://a.site.com:8080/index でリクエストを行うと、Chrome コンソール
http://b.site.com:8080/

から挿入された Cookie を確認できます。 、しかし...ajax経由 インターフェイス中に、Cookieがリクエストヘッダーに表示されませんでした。get、post、非同期、同期などのさまざまなメソッドを試しましたが、どれも機能しませんでした。最後に、jsonpメソッドが使用され、Cookieが登場しました



使いにくいコードは次のとおりです:
リーリー

便利なコードは次のとおりです:
リーリー
問題を解決できる場合は、専門家に助けを求めてください。ありがとうございます。

withCredentials=true、サーバーがクロスドメインを許可していることを確認します。詳細については、cors

を参照してください。

ドメインは、あなたが言うようなものではありません。 Cookie ドメインと Ajax ドメインは同じものではありません

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