#javascript #jquery #ajax #cookies
Вопрос:
Я отправляю AJAX-запросы с одного домена(xyz.com) в другой домен(abc.com) , как показано в следующем коде. и я также установил атрибут withCredentials в значение true в AJAX, чтобы отправлять файлы cookie в запросе.
$.ajax({
type: "POST",
enctype: 'multipart/form-data',
url: abc.com,
xhrFields: {
withCredentials: true
},
data: newData,
processData: false,
contentType: false,
crossDomain: true,
cache: false,
timeout: 600000,
success: function (data) {
},beforeSend: function (xhr) {
xhr.setRequestHeader('Access-Control-Allow-Origin', 'abc.com');
}
Я создаю следующие пользовательские файлы cookie в фильтре сервлета и устанавливаю атрибут SameSite равным None.
Файлы cookie успешно создаются и отображаются в браузере.
if(authenticated) {
String accessToken = getUserAccessToken(userStr,passStr);
if(!accessToken.isEmpty()) {
response.setHeader("Set-Cookie", "access_token=" accessToken "; SameSite=none" "; secure" "; Path=/" "; Expires=" getExpires(accessTokenExpireTime) ";");
response.setHeader("Access-Control-Allow-Credentials", "true");
response.setHeader("Access-Control-Allow-Origin", "abc.com");
}
но когда запрос ajax отправляется на abc.com домен. в заголовках файлов cookie запроса пользовательские файлы cookie недоступны.
Почему Ajax-запрос не отправляет файлы cookie в заголовках файлов cookie запроса, даже если атрибут SameSite установлен в значение Нет.? должно ли доменное имя в том же или поддомене отправлять файлы cookie?