Можно ли заставить Firefox принимать сторонние файлы cookie из заголовка ответа AJAX?

#ajax #http #firefox

#ajax #http #firefox

Вопрос:

Я пишу некоторый код, который отправляет AJAX-запрос на наш веб-сервер. Наш сервер выполняет некоторую логику, а затем отвечает некоторым JSON. Он также может отвечать заголовком set-cookie:

 Set-Cookie: our_organisation=[uuid]; domain=.our_organisation.com; path=/; expires=[soon]
  

Насколько я могу судить, это работает в Chrome и Safari, но не в Firefox. Firefox примет файл cookie, если вместо этого это запрос изображения. Я делаю что-то не так здесь?

У меня уже была проблема, когда я не мог прочитать ответ AJAX на стороне клиента в Firefox; это было исправлено с помощью настройки Access-Control-Allow-Origin: * в заголовке ответа.

Ответ №1:

Это межсайтовый XMLHttpRequest?

Если да, то согласно http://dev.w3.org/2006/webapi/XMLHttpRequest-2 / withCredentials по умолчанию имеет значение false, поэтому «флаг учетных данных», используемый для CORS, имеет значение false, а затем для http://dvcs.w3.org/hg/cors/raw-file/tip/Overview.html флаг «блокировать файлы cookie» устанавливается во время HTTP get, и за http://www.whatwg.org/specs/web-apps/current-work/multipage/fetching-resources.html#fetch это означает Set-Cookie , что заголовки игнорируются. Похоже, Chrome и Safari просто не соответствуют приведенным здесь спецификациям.

Вы можете установить withCredentials = true для объекта XHR отправку файлов cookie. Но обратите внимание, что если вы сделаете это, вам придется указать фактический источник в Access-Control-Allow-Origin ; вы не можете просто использовать * .

Комментарии:

1. @Cerales Кстати, я сообщил о поведении WebKit пользователям WebKit, но они не могут его воспроизвести. Вы уверены, что выполняете межсайтовый запрос в Chrome и Safari?