使用Node.js设置HTTP标头Cookie

时间:2014-10-17 20:58:11

标签: javascript node.js cookies header

我正在尝试使用以下方法在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但没有成功。

感谢任何想法。

1 个答案:

答案 0 :(得分:1)

虽然我知道您说您确定data.name已定义,但您的代码看起来很简单,我怀疑它是否实际定义。

尝试使用一些明确的检查来设置标头cookie,而不是登录到控制台:

response.setHeader(
    "username=" +
    (
        data ?
            data.hasOwnProperty( "name" ) ?
                data.name ?
                    data.name : "name empty"
                : "name undefined"
            : "data undefined"
    )
);

这不会解决您的问题,但可以帮助您了解data.name的哪些部分无法正常使用。