これはさまざまな形で以前に尋ねられたことを知っていますが、問題を回避することはできないようです。 jQueryとネイティブJS APIの両方を使用してAjaxリクエストを作成しようとしました。
私の状況は次のとおりです(添付図を参照):
クロスドメインリクエストに関する講義を開始する前に、いくつかのことを説明します。
Access-Control-Allow-Origin
応答のヘッダー(およびChromeとFirefox、どちらも [〜#〜] cors [〜#〜] をサポートしています)では、なぜ、なぜ、なぜHTTPS Ajax呼び出しを行うときにブラウザーがCookieを渡さないのですか?何か案は?気を失いそうです...
+-----------+ HTTP Request +-----------+
|Browser |+---------------->|Server |
+-----------+ +-----------+
HTTP Response
<----------------+
Set-cookie
Ajax HTTP Req.
+---------------->
Cookie (OK)
HTTP Response
<----------------+
Set-cookie (OK)
Ajax HTTPS Req.
+---------------->
No Cookie (!!!)
OK、クッキーの問題の解決策を見つけました。
XHR仕様 、 jQuery docs および StackOverflow を参照してください。
プロトコルやサブドメインを切り替えるときにCookieを送信する解決策は、withCredentials
プロパティをtrue
に設定することです。
例えば。 (jQueryを使用)
$.ajax( {
/* Setup the call */
xhrFields: {
withCredentials: true
}
});