无法访问客户端的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。
这里是getCookie
的W3Schools函数实现(这仅是示例,未经我测试或实现):
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的主要内容,如果未能解决你的问题,请参考以下文章