簡體   English   中英

Chrome僅設置“ Set-Cookie”標題中的第一個Cookie

[英]Chrome only sets the first cookie from the 'Set-Cookie' header

我有一個死的簡單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的用戶界面檢查Cookie時,我還看到僅保存了第一個Cookie:

這是什么問題

chrome ui餅干

如果您僅使用香草節點,則只需將數組作為第二個參數傳遞給res.setHeader(field, value)

res.setHeader('Set-Cookie', [
  'age=44; path=/',
  'name=ok; path=/',
  'something=else; path=/'
])

如果使用Express 4.11.0+,則可以使用res.append(field [, value])

res.append('Set-Cookie', 'age=44; path=/');
res.append('Set-Cookie', 'name=ok; path=/');
res.append('Set-Cookie', 'something=else; path=/');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM