#ajax #cookies #http-headers #cross-domain #samesite
#ajax #файлы cookie #http-заголовки #междоменный #тот же сайт
Вопрос:
Мой сайт a.domain
предоставляет страницу, скрипты которой выполняют AJAX-запросы (с использованием выборки) b.domain
.
Во время первого посещения a.domain
клиенту отправляется файл cookie со следующими параметрами :
"httpOnly" : "true"
"secure" : "true"
"domain" : ".domain"
"sameSite" : tried Strict, Lax and None
b.domain
имеет следующие заголовки ответов :
"Access-Control-Allow-Origin" : "a.domain"
"Access-Control-Allow-Credentials : true
"Access-Control-Allow-Methods" : "GET, PUT, POST, DELETE, OPTIONS".
"Access-Control-Allow-Headers" : "Content-Type, Authorization, Content-Length, X-Requested-With, Credentials"
И заголовки запросов на выборку :
"Content-Type" : "application/json"
"Accept" : "application/json"
"Credentials" : "include"
Файл cookie хорошо передается a.domain
или, если я посещаю b.domain
напрямую, но не в AJAX-запросах.
РЕДАКТИРОВАТЬ: проблема одна и та же, независимо от значения параметра samesite.
Есть ли способ сделать это? Спасибо
Комментарии:
1. web.dev/samesite-cookies-объяснено
2. Спасибо, но этот сайт не говорит об ajax-запросах. Атрибут samesite в моем случае ничего не меняет.
3. Атрибут samesite предназначен для любого межсайтового запроса, включая AJAX. На самом деле AJAX-запросы являются основной причиной sametime cookies!
4. Хорошо, поэтому я должен был упомянуть, что проблема одна и та же, независимо от значения параметра samesite.
5. Вы используете «тот же сайт» или «Тот же сайт»? Вы подтвердили, что cookie-файл определенно устанавливается с помощью этого в DevTools?
Ответ №1:
Хорошо, нашел это. Проблема была связана с неправильным пониманием параметра учетных данных в запросах на выборку. credentials
является не заголовком, а параметром запроса. Как только параметр выходит из заголовков (и записывается в нижнем регистре), все работает нормально.