Мои файлы cookie не устанавливаются. Я пробовал все возможные варианты промежуточного программного обеспечения для различных заголовков, но не могу заставить его работать. Я относительно новичок, поэтому, если есть какие-то ключевые концепции, которые, по вашему мнению, я не понимаю, пожалуйста, объясните!
фронтальная часть:
window.onload = function(){
const Http = new XMLHttpRequest;
const url = "http://localhost:5001/";
Http.open("GET",url,true);
Http.withCredentials = true;
Http.setRequestHeader('Content-type','text/plain');
Http.send();
}
server side:
app.get("/",stuff);
function stuff(req,res) {
res.cookie("ss","ss");
console.info("stuff");
res.header("Access-Control-Allow-Origin", "http://127.0.0.1:5500");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
res.header("Access-Control-Allow-Credentials", "true");
res.send();
}
Сначала у меня были проблемы с CORS, но теперь мне удалось избавиться от этой ошибки, я все еще не смог заставить ее сохранить файл cookie. Мне удалось сохранить файл cookie из домена, в котором я делаю запрос, но не в этом файле, где находится мой HTML + CSS + JS.
К сожалению, невозможно установить куки разных источников, даже если источники находятся на одном хосте, но на разных портах. Это представляет собой брешь в системе безопасности, которая позволяет сайтам устанавливать отслеживающие файлы cookie для других доменов. При этом есть несколько возможных обходных путей:
Этого можно добиться, ответив на http-запрос с помощью JSON, чтобы указать внешнему интерфейсу установить файл cookie.
Вы можете сделать это, передав переменную document.cookie
как FormData
в свой сервер и проанализировав ее там.