2017-08-21 19 views
1

これは本当に迷惑なことですが、Chromeの内部とそれより多かれ少なかれ推測する名前の一部に起因します。しかし、私のリクエストヘッダーは、同じドメインのクッキーに沿って渡されていません。ChromeはドメインレベルのCookieをリクエストヘッダーのサーバーに送信しません

私は

.domain.net

に設定されたドメインでクッキーを持っている私のアプリケーションは、次のURLに

myappのです。 foo.bar.domain.net

私は

otherappで同じルートドメイン上の別のサーバに要求を送信しようとしています。 クッキーがChromeで送信しませんが、Safariで送信ん

bar.domain.net。 ".domain.netは、" マスター・ドメインの両方の両方あるので

HTTPクッキーの仕様によれば、送信する必要があり.bar.domain.net.foo.bar.domain.net

さらに、GETリクエストをmyapp.foo.bar.domain.netまたはmyapp.bar.domain.netにすると、cookieが実際にヘッダーに渡されるため、ドメインレベルのCookieが機能していることがわかります。それは、どちらか一方の原点が他方の原点であるときにどちらかのドメインに要求している場合には失敗するようです。これはChromeの既知のバグであれば

誰もが知っている、私はバージョン59

答えて

1

を実行していることは、私はAjaxのリクエストで

xhrFields: { 
      withCredentials: true 
     }, 

を追加することはなかったが判明します。ドメインを変更する前にこれがすべて機能していたため、これはちょっと混乱していました。これは、withCredentialsヘッダーを設定することなくSafariで動作するということです。ここでは、withCredentialsヘッダーパラメータが渡されない限り、ルートドメインのCookieが設定されている場合でも、ホスト名が異なるとChromeがCookieを送信しないことになりますが、Safariは何を送信しても問題ありません。私はFirefoxについて知らない。

関連する問題