2010-11-18 3 views
5

私が上で動作するようにHttpOnly認証Cookieが必要:私は、単一のログインを経て、3つのすべての場所にログインすることができるようにマルチサブドメインのクッキーとAjaxの問題

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

これはに私のCookieドメインを設定することにより、正常に動作している:

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

このすべては、通常のブラウザ要求を正常に動作します:ここに

.mydomain.com 

はクッキーを設定レスポンスヘッダです。

ただし、AJAXリクエストをmydomain.comwww.mydomain.comからabc.mydomain.comにする必要があります。

リクエストを行うと、認証Cookieが渡されません。なぜこれが、そして私はそれについて何ができますか?私はページと同じホストへの要求を行う場合はJSが置かれ、それはクッキーを送信し

:S

ここに私の要求コードです:

$.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'); 
    } 
}); 

は、これはいくつかのクロスドメインポリシーです?クッキードメインがなぜこの作品を作っていないのですか?

おかげで

答えて

1

same origin policyによると、サブドメインは確かにあなたのトップドメインへの「敵対的」ですが、それはdocument.domainを(同じ記事)を設定することにより固定することができます。

+0

URL http://one.foo.com/で「document.domain」を「foo.com」に設定した場合、サーバーはhttp://two.foo.com/のdocument.domain設定をそれは 'two'への要求をしますか? –

+0

アクセス制御ヘッダーを使用したCORS要求がこの状況にどのように影響しますか? – Mnebuerquo