2 つの異なるドメインに 2 つの Web アプリケーション WebApp1 と WebApp2 があります。
- HttpResponse の WebApp1 に Cookie を設定しています。
- 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
}