AJAX-вызов, который вы делаете, делает запрос к домену за пределами домена URL верхнего уровня (URL в адресной строке).Это приводит к тому, что он является сторонним cookie, по умолчанию Internet Explorer не сохраняет сторонний cookie.Это означает, что cookie будет возвращаться в заголовке Set-Cookie при первом запросе, но последующие запросы, которые вы отправляете на этот сервер, не будут отправлять этот cookie в запросе.
Как вы сказали, если вы идетепрямо на URL в вашем браузере это работает.Это связано с тем, что в данном случае это файл cookie первой стороны.
Чтобы IE мог принимать файлы cookie третьей стороны, сервер, отправляющий заголовок SET-COOKIE
в своем ответе, также должен иметь установленный заголовок политики P3P.
Вот пример, когда вы переходите к CNN, вы заметите, что один из запросов, которые он делает, относится к доменному имени b.scorecardresearch.com, Scorecardresearch удаляет отслеживающий cookie, но этот cookie считаетсясторонний файл cookie.Поэтому, чтобы заставить его работать, они также должны были включать заголовок p3p
, см. Заголовки ниже:
HTTP/1.1 200 OK
Content-Length: 43
Content-Type: image/gif
Date: Thu, 02 Dec 2010 19:57:16 GMT
Connection: keep-alive
Set-Cookie: UID=133a68a4-63.217.184.91-1288107038; expires=Sat, 01-Dec-2012 19:57:16 GMT; path=/; domain=.scorecardresearch.com
P3P: policyref="/w3c/p3p.xml", CP="NOI DSP COR NID OUR IND COM STA OTC"
Expires: Mon, 01 Jan 1990 00:00:00 GMT
Pragma: no-cache
Cache-Control: private, no-cache, no-cache=Set-Cookie, no-store, proxy-revalidate
Server: CS
Если вы скопируете этот заголовок и добавите его в ответ, вы заметите, чтофайл cookie начинает работать,
P3P: policyref="/w3c/p3p.xml", CP="NOI DSP COR NID OUR IND COM STA OTC"
Лучше всего, если вы создадите заголовок P3P, специфичный для вашего бизнеса, но вышеописанное должно работать для целей тестирования.