Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Chrome仅设置';设置Cookie';标题_Node.js_Google Chrome_Http_Cookies_Http Headers - Fatal编程技术网

Node.js Chrome仅设置';设置Cookie';标题

Node.js Chrome仅设置';设置Cookie';标题,node.js,google-chrome,http,cookies,http-headers,Node.js,Google Chrome,Http,Cookies,Http Headers,我有一个非常简单的http nodejs服务器: require('http').createServer(function(req, res) { res.statusCode = 200; res.setHeader('Set-Cookie', 'age=44; name=ok; something=else; path=/'); res.end('ok ok ok', 'utf8'); }).listen(9999); 在最新版本的Chrome中访问页面时,以下是

我有一个非常简单的http nodejs服务器:

require('http').createServer(function(req, res) {
    res.statusCode = 200;
    res.setHeader('Set-Cookie', 'age=44; name=ok; something=else; path=/');
    res.end('ok ok ok', 'utf8');
}).listen(9999);
在最新版本的Chrome中访问页面时,以下是从服务器发送的响应头:

因此,服务器发送正确的cookie。但是,浏览器似乎只存储第一个(
age=44
)。如果我再次刷新页面,则以下是发送到服务器的请求头:

只发送第一个cookie(
age=44
)。在控制台中记录
document.cookie
也只返回
'age=44'

当从Chrome的UI检查Cookie时,我还可以看到只有第一个被保存:

这里有什么问题


如果您只是使用vanilla节点,则只需将数组作为第二个参数传递给:

如果使用Express 4.11.0+您可以使用:


谢谢我刚刚查看了节点文档,似乎如果您尝试使用
res.setHeader
多次设置相同的头,那么只会使用最后一个头。感谢您提及阵列方法。
res.setHeader('Set-Cookie', [
  'age=44; path=/',
  'name=ok; path=/',
  'something=else; path=/'
])
res.append('Set-Cookie', 'age=44; path=/');
res.append('Set-Cookie', 'name=ok; path=/');
res.append('Set-Cookie', 'something=else; path=/');