Файлы cookie — это данные (обычно зашифрованные), хранящиеся на локальном терминале пользователя для идентификации личности пользователя и отслеживания сеанса. Формат хранения следующий:
Set-Cookie: NAME=VALUE(key1=value1&key2=value2);Expires=DATE;Path=PATH;Domain=DOMAIN_NAME;SECURE
Установка домена cookie может решить только междоменные проблемы в субдоменах с одним и тем же именем основного домена. Например, если установить домен файла cookie .zlj.cn; имя a.zlj.com, b.zlj.cn и т. д., все смогут получить доступ к этому файлу cookie.
Однако этот метод не может решить проблему межосновных доменных имен.
CORSОбеспечивает нам междоменное совместное использование ресурсов.изрешение,проходитьAccess-Control-Allow-Origin Access-Control-Allow-Credentials Access-Control-Allow-Headers Access-Control-Allow-Methods Access-Control-Expose-Headers Access-Control-Max-Age Access-Control-Request-Headers Access-Control-Request-Method Origin
Access-Control-Allow-Credentials Заголовок ответа указывает, может ли ответ на запрос быть представлен на странице. Можно вернуть true, но не другие значения.
Учетные данные могут быть cookies, authorization headers или TLS client certificates。
Интерфейсная часть передает файлы cookie между доменами на сервер, что требует трех условий:
На стороне сервера вам нужно
response.addHeader("Access-Control-Allow-Origin", "demo.zhoulujun.cn");
response.addHeader("Access-Control-Allow-Credentials", "true");
Фронтальная операция ajax
$.ajax({ url : 'xxx', xhrFields: { withCredentials: true // Настройка выполнения междоменных операций }}); //jquery
axios(url, {
method: 'GET',
mode: 'no-cors',
headers: {
'Access-Control-Allow-Origin': '*',
'Content-Type': 'application/json',
},
withCredentials: true,
credentials: 'same-origin',
}).then(response => {
})
Это хлопотнее, но nginx proxy удобнее.
Заявление о версии chrome80
Грубо говоря, в версиях после 1980 года файлы cookie по умолчанию не могут пересекать домены, если только сервер не установит атрибут того же сайта в заголовке ответа. Поскольку атрибут по умолчанию больше не является слабым
у того же сайта есть три значения, которые можно установить: строгий, нестрогий, нет.
<a href="..."></a>
отправлять Отправка файлов cookie Cookieпредварительная загрузка<link rel="prerender" href="..."/>
отправлять Отправка файлов cookie CookieGET форма<form method="GET" action="...">
отправлять Отправка файлов cookie CookiePOST форма<form method="POST" action="...">
отправлять Файл cookie не отправленiframe<iframe src="..."></iframe>
отправлять Файл cookie не отправленAJAX$.get("...")
отправлять Файл cookie не отправленImage<img src="...">
отправлять Файл cookie не отправленеслиЕсли конвертируются только хост и порт, файлы cookie не будут потеряны.。БраузеризcookieСодержитjsessionid。при повторном посещении,Браузер отправит текущий файл cookie.
Если путь также изменится,Вам необходимо конвертировать пути установки файлов cookie.,Подробно читайте документацию:http://nginx.org/en/docs/http/ngx_http_proxy_module.html?&_ga=1.161910972.1696054694.1422417685#proxy_cookie_path
location /proxy_path {
proxy_pass http://zhoulujun.cn/project;
proxy_cookie_path /project /proxy_path;
# proxy_cookie_domain b.zlj.com a.zlj.com;#Если файл cookie не устанавливает домен, настройка не требуется (обычно настройка не требуется)
}
После переноса серверной части практически все проблемы можно решить, но это также приводит к ненужному потреблению.
Функция параметра proxy_cookie_domain заключается в преобразовании параметра домена в заголовке ответа set-cookie. Доменное имя, установленное серверной частью, преобразуется в замену вашего доменного имени, чтобы обеспечить плавную доставку файла cookie и запись его в текущий. Обратите внимание, что proxy_cookie_domain отвечает только за обработку атрибута домена в заголовке ответа set-cookie, не более того.
Справочная статья:
Атрибут SameSite файла cookie www.ruanyifeng.com/blog/2019/09/cookie-samesite.html
ПерепечаткаЭтот сайтстатья《Проблема с файлами cookie при междоменной передаче файлов cookie: междоменный прокси-сервер nginx proxy_cookie_domain》, Пожалуйста, укажите источник:https://www.zhoulujun.cn/html/tools/webServer/nginx/2020_0526_8439.html