我正在尝试使用以下方法在node.js中设置一些标头cookie
response.setHeader("Set-Cookie", "username=" + data.name);
数据变量是一个json对象,它包含许多字段/值,通过先前发送的ajax请求接收。肯定填充了 data.name 字段(以前的console.log(data.name)正确显示了值。)
但是,在浏览器中,一旦使用response.end()发送此标头,它就会显示以下方式(在Chrome中,同时检查网络标签中的响应标头)
Set-Cookie:username=undefined
有没有人知道如何正确地做到这一点?
我想要实现的是在整个会话中识别用户没有使用任何第三方膨胀,例如express.js。我已经尝试过使用session.js但没有成功。
感谢任何想法。
答案 0 :(得分:1)
虽然我知道您说您确定data.name
已定义,但您的代码看起来很简单,我怀疑它是否实际定义。
尝试使用一些明确的检查来设置标头cookie,而不是登录到控制台:
response.setHeader(
"username=" +
(
data ?
data.hasOwnProperty( "name" ) ?
data.name ?
data.name : "name empty"
: "name undefined"
: "data undefined"
)
);
这不会解决您的问题,但可以帮助您了解data.name
的哪些部分无法正常使用。