5


0

マルチサブドメインCookieとAjaxの問題

作業するには、 `HttpOnly`認証Cookieが必要です。

mydomain.com
www.mydomain.com
abc.mydomain.com

1回のログインで3つの場所すべてにログインできます。

Cookieドメインを次のように設定することで、これはうまく機能しています。

.mydomain.com

Cookieを設定する応答ヘッダーは次のとおりです。

MYAUTHCOOKIE=FOO; domain=.mydomain.com; path=/; HttpOnly

これはすべて、通常のブラウザー要求では正常に機能します。

ただし、 mydomain.com`と www.mydomain.com`から `abc.mydomain.com`へのAJAXリクエストを行う必要があります。

リクエストを行うとき、認証Cookieを渡していません。 これはなぜですか、どうすればいいですか?

JSが存在するページと同じホストにリクエストを行うと、Cookieが送信されます。

私のリクエストコードは次のとおりです。

$.ajax({
    type: "POST"
    , data: { data: { foo: bar} }
    , dataType: "json"
    , url: "http://abc.mydomain.com/foo"
    , timeout: 5000
    , success: function (data, textStatus) {
        alert('woo!');
    }
    , error: function (xhr, textStatus, error) {
        alert('meh');
    }
});

これはクロスドメインポリシーですか? Cookieドメインがこの動作を行わないのはなぜですか?

ありがとう

1 Answer


1


same origin policyによると、サブドメインは実際にトップドメインに対して「敵対的」ですが、document.domainを設定することで修正できます(同じ記事)。