无法访问客户端的cookie | NodeJS和JS

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法访问客户端的cookie | NodeJS和JS相关的知识,希望对你有一定的参考价值。

服务器端代码:

res.cookie('test', 'value', { expire: 400000 + Date.now(), httpOnly: false });
res.writeHead(302, {
  'Location': 'localhost:4000/test',
});
res.end();

客户端代码:

[当我有console.log(document.cookie);时,我可以在开发工具中的控制台中看到cookie。当我尝试获取一个cookie console.log(document.cookie.test);console.log(document.cookie['test']);

然后我变得不确定

答案

这是预期的行为!

Cookie将另存为以半列分隔的字符串。每个Cookie均包含键值对,并以=分隔。

在您的情况下,cookie将采用以下格式:

"test=value"

如果添加cookie“ test2”和值“ value2”,则将具有以下格式:

"test=value; test2=value2"

如果要获取基于值的cookie鬃毛,则必须实现将解析字符串并手动提取值的功能。

更多细节请参考以下answer

这里是getCookieW3Schools函数实现(这仅是示例,未经我测试或实现):

function getCookie(cname) {
  var name = cname + "=";
  var decodedCookie = decodeURIComponent(document.cookie);
  var ca = decodedCookie.split(';');
  for(var i = 0; i <ca.length; i++) {
    var c = ca[i];
    while (c.charAt(0) == ' ') {
      c = c.substring(1);
    }
    if (c.indexOf(name) == 0) {
      return c.substring(name.length, c.length);
    }
  }
  return "";
}

以上是关于无法访问客户端的cookie | NodeJS和JS的主要内容,如果未能解决你的问题,请参考以下文章

Django认证系统

Django-认证系统

cookie和session

Cookie与Session的区别

NodeJs session 使用

cookie和session