繁体   English   中英

如何设置跨源Cookie? (CORS)

[英]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。 话虽如此,有一些可能的解决方法:

设置Cookie:

这可以通过用JSON响应http请求告诉前端设置cookie来实现。

获取Cookie:

您可以通过将document.cookie变量作为FormData传递到后端,然后在其中进行解析来实现。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM