Javascript Angular 9-cookie保存在错误的域中

Javascript Angular 9-cookie保存在错误的域中,javascript,node.js,angular,cookies,angular9,Javascript,Node.js,Angular,Cookies,Angular9,我的客户端和服务器端在不同的域上运行。 当我登录到服务器时,我会在响应中保存cookie。 但出于某种原因,请仅将cookie保存到客户端域 服务器: const cookieParser = require('cookie-parser'); router.post("/", (req, res) => { const userData = req.body; User.findOne(userData).then(data => { if (data) {

我的客户端和服务器端在不同的域上运行。 当我登录到服务器时,我会在响应中保存cookie。 但出于某种原因,请仅将cookie保存到客户端域

服务器:

const cookieParser = require('cookie-parser');
router.post("/", (req, res) => {
  const userData = req.body;
  User.findOne(userData).then(data => {
    if (data) {
      const token = jwt.sign(userData, process.env.SECRET);
      res.cookie("token", token);
      res.send();
    } else {
      res.status(401).send("Login Failed");
    }
  });
});
我的客户端在本地主机上运行:4200 本地主机上的服务器:3000 (我从完全不同的领域尝试过,但仍然是同一个问题)


还尝试使用ngx cookie服务,但它也仅适用于客户端域

您可以通过将域传递到set函数来设置特定域的cookie

Cookie是为localhost存储的,所以这里不关心端口

this.cookieService.set(cookieName, value, expiry, '/','localhost');
拿饼干

this.cookieService.get(cookieName);

这不是angular的错,浏览器将根据响应头和cookie详细信息放置cookie路径,这是后端问题。我所做的只是将cookie添加到响应中,你是说,因为响应目标是客户端,所以它会将cookie保存在那里?更新ngx cookie服务版本3.0.0或更高版本将解决问题我也面临同样的问题我尝试过它,它确实保存了该域的cookie,但它只在我打开新选项卡时起作用(我检查了,它使用cookie和令牌),但是当Angular试图进入该域时,它没有将cookie添加到头中,我得到了401个未经授权的消息