файлы cookie нескольких поддоменов и проблемы с ajax - PullRequest
5 голосов
/ 18 ноября 2010

Мне нужен HttpOnly файл cookie для аутентификации для работы:

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

так, чтобы я мог войти во все три места через один логин.

Это работает нормально, установив для моего домена cookie:

.mydomain.com

вот заголовок ответа, который устанавливает cookie:

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

Это нормально работает для обычных запросов браузера.

Однако мне нужно сделать AJAX-запрос от mydomain.com и www.mydomain.com до abc.mydomain.com.

Когда я делаю запрос, он не передает cookie аутентификации. Почему это так, и что я могу с этим поделать?

Если я отправляю запрос на тот же хост, что и страница, на которой находится JS, он отправляет cookie: 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');
    }
});

Это какая-то междоменная политика? Почему домен cookie не работает?

Спасибо

1 Ответ

1 голос
/ 10 апреля 2011

В соответствии с той же политикой происхождения , субдомены действительно "враждебны" к вашему верхнему домену, но это можно исправить, установив document.domain (та же статья).

...