クロスドメインCookie 質問する

クロスドメインCookie 質問する

2 つの異なるドメインに 2 つの Web アプリケーション WebApp1 と WebApp2 があります。

  1. HttpResponse の WebApp1 に Cookie を設定しています。
  2. WebApp2 の HttpRequest から同じ Cookie を読み取るにはどうすればよいでしょうか?

クッキーは特定のドメインに固有のものであり、異なるドメインからはアクセスできないため、奇妙に聞こえることは承知しています。ただし、複数の Web アプリ間で共有できる CROSS-DOMAIN クッキーについては聞いたことがあります。CROSS-DOMAIN クッキーを使用してこの要件を実装するにはどうすればよいでしょうか?

注: J2EE Webアプリケーションでこれを試しています

ベストアンサー1

domain1.exampleはい、からCookie を取得することは絶対に可能ですdomain2.example。ソーシャル ネットワークのソーシャル プラグインでも同じ問題が発生しましたが、1 日かけて調査した結果、解決策を見つけました。

まず、サーバー側で次のヘッダーが必要です。

header("Access-Control-Allow-Origin: http://origin.domain:port");
header("Access-Control-Allow-Credentials: true");
header("Access-Control-Allow-Methods: GET, POST");
header("Access-Control-Allow-Headers: Content-Type, *");

PHPファイル内では、$_COOKIE[name]

次に、クライアント側では次のようになります。

AJAXリクエストには2つのパラメータを含める必要があります

crossDomain: true
xhrFields: { withCredentials: true }

例:

type: "get",
url: link,
crossDomain: true,
dataType: 'json',
xhrFields: {
  withCredentials: true
}

おすすめ記事