Вопрос по html5 – CORS withCredentials Предварительная проверка XHR не публикует файлы cookie в Firefox
Я пытаюсь сделать сообщение CORS XHR с учетными данными. Он прекрасно работает в Chrome, но не в Firefox. Файлы cookie отсутствуют в заголовках запросов перед полетом, и поэтому я вижу 302. Это прекрасно работает в Chrome, поскольку файлы cookie находятся в заголовках запросов перед полетом, и последующий POST проходит.
Почему бы это не работать в FF? Что мне не хватает?
<code>// assume url, boundEventHandler and uploadData are defined, as this definitely works in Chrome var xhr = new XMLHttpRequest(); xhr.open("POST", url, true); xhr.addEventListener ("readystatechange", boundEventHandler, false); xhr.withCredentials = true; // FWIW, I've also tried the string 'true' xhr.send(uploadData); </code>
Есть идеи? Я вижу некоторые сообщения, в которых говорится, что я могу прокси-запрос на стороне сервера, но я бы предпочел, чтобы это работало в соответствии со спецификацией CORS.
Спасибо!
https://www.w3.org/TR/cors/#resource-preflight-requests предварительный запрос никогда не включает куки. В частности, в спецификации говорится:
Exclude user credentials.и что ссылки наhttps://www.w3.org/TR/cors/#user-credentials который говорит:
The term user credentials for the purposes of this specification means cookies, HTTP authentication, and client-side SSL (...).
Тем не менее, фрагмент кода, который вы цитируете выше, вообще не должен включать предварительную проверку: нет прослушивателей события загрузки, метод такой же простой, и заголовки автора не установлены. Поэтому, если вы действительно видите предполётный запрос, первый вопрос - почему это происходит. Есть ли у вас какие-либо расширения в Firefox, которые могут манипулировать вашим объектом XMLHttpRequest?