Передача файла cookie сайтам в том же домене в ajax-запросах

#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 является не заголовком, а параметром запроса. Как только параметр выходит из заголовков (и записывается в нижнем регистре), все работает нормально.