[英]How to set a cross origin cookie? (CORS)
我的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.log("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。 这带来了一个安全漏洞,该漏洞将使站点可以为其他域设置跟踪cookie。 话虽如此,有一些可能的解决方法:
这可以通过用JSON响应http请求告诉前端设置cookie来实现。
您可以通过将document.cookie
变量作为FormData
传递到后端,然后在其中进行解析来实现。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.