У меня есть странная проблема с cookie, которые отправляются и получаются правильно, но недоступны JavaScript на Internet Explorer. Chrome, Firefox, Opera и Safari JavaScript прекрасны.
Отправьте на "http://wp.abc.example.com/content/sv2.cgi?id=1234", ответ устанавливает cookie, выпускает 302 перенаправления:
HTTP/1.0 302 Moved Temporarily
Location: http://members.abc.example.com/abc/members/0912/07/news01.html
Set-Cookie: AID=1495763b4fc6d5f4290e2074ab1092f7; expires=Tue Feb 16 09:33:03 2010 GMT; path=/abc/members/0912/07/news01.html; domain=abc.example.com; ;
Set-Cookie: LEADENDDATE=20091218; expires=Tue Feb 16 09:33:03 2010 GMT; path=/abc/members/0912/07/news01.html; domain=abc.example.com; ;
Браузер запрашивает целевую страницу, включая cookie, просто отправленные.
GET /abc/members/0912/07/news01.html HTTP/1.1
Cookie: AID=1495763b4fc6d5f4290e2074ab1092f7; LEADENDDATE=20091218;
Host: members.abc.example.com
Выполненный "javascript:alert (document.cookie)"; на адресной строке браузера.
На IE и IE только, cookie не там. Другие браузеры прекрасны. Это верно для IE6, 7, и 8.
Так, таким образом,
"wp.abc.example.com" устанавливает cookie на "abc.example.com", который отправляется на сервер в запросах на "members.abc.example.com", но не видимый к JavaScript на той странице.
Почему?
Я думал, возможно, вместо "abc.example.com", который cookie должен быть установлен на ".abc.example.com" позволить соответствию субдомена, но несмотря на это это отправляется в заголовке запроса "members.abc.example.com".
В основном это действует, как будто "HttpOnly" установлен на cookie, даже при том, что от примера заголовка Cookie Набора, показанного выше, тот флаг не включен. Делает дополнительное""; возможно, имейте некоторый эффект?
Некоторое время назад Эрик Лоу написал хорошую статью о различных причудах работы с печеньем в IE . Один из вопросов, на который он ответил, выглядит так, как будто он может применяться к вашему сценарию:
Q8: Существуют ли какие-либо ограничения для свойства HTML DOM document.cookie?
A: [...]
Также, из-за непонятной ошибки в базовой реализации WinINET InternetGetCookie, IE document.cookie не вернет cookie, если он был задан с атрибутом пути, содержащим имя файла.
. [...]
Обратите внимание, что ваши пути do включают имена файлов:
Set-Cookie: AID=1495763b4fc6d5f4290e2074ab1092f7; expires=Tue Feb 16 09:33:03 2010 GMT; path=/abc/member/0912/07/news01.html; domain=abc.example.com;
;
. Сет-Куки: LEADENDDATE=20091218; expires=Tue Feb 16 09:33:03 2010 GMT; path=/abc/member/0912/07/news01.html; domain=abc.example.com; ;
I suggest you try you setting the cookies with filename--free paths, and see if that doesn't help...