Я на сайте https://aaa.shared.com
. Этот веб-сайт (назовите его A
) отправляет запрос xhr
на URL https://zzz.shared.com/some/path
(веб-сайт Z
) и получает ответ со следующими заголовками:
access-control-allow-credentials: true
access-control-allow-origin: aaa.shared.com
set-cookie: foo=bar; expires=Fri, 01 Jan 2100 00:00:00 GMT; path=/; secure; samesite=none; httponly
(я следовал ответьте на этот вопрос , чтобы добавить access-control
заголовки)
Теперь я ожидаю, что всякий раз, когда я нахожусь на A или Z, всякий раз, когда запрос переходит к Z ( кросс-происхождение или одинаковое происхождение, что важно, это URL запроса) браузер добавил бы повар ie, но это не так! Более того, я не вижу его установки в инструментах разработчика браузера (F12 -> Приложение -> Cookies). Я использую Chrome, но нацеливаюсь на кросс-браузерное решение.
Чего мне не хватает? Мне действительно трудно найти какую-то сложную информацию о том, как работает заголовок Set-Cookie
при запросе другого источника.
РЕДАКТИРОВАТЬ: rowan_z
первоначально предложил заменить samesite=lax
на samesite=none
, как A и Z в первой версии этого вопроса были совершенно отдельными доменами (разделяли только .com
часть). Я попробовал это, и это не помогло. Но теперь я понимаю, что они на самом деле считаются SameSite
, потому что они находятся на разных поддоменах домена shared.com
. Так что теперь я считаю, что samesite=lax
должно было бы работать и здесь.
ОБНОВЛЕНИЕ: В конце концов, я просто переместил приложение aaa.shared.com
в тот же поддомен с некоторым путем zzz.shared.com/aaa/path
, что касается работы с файлами cookie и CORS действительно тяжело. Кроме того, его настройка для работы с localhost
добавляет дополнительные сложности.