2016-11-14 3 views
0

から最初のクッキーを設定していますChromeは唯一私が死んで単純なHTTP nodejsサーバーを持っている「のSet-Cookie」ヘッダ

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の最新バージョンでページを訪問すると、これらは、送信された応答ヘッダーですサーバから:

server response headers

ので、サーバが正しいクッキーを送信します。しかし、ブラウザは最初のもの(age=44)のみを保存しているようです。私はもう一度ページを更新した場合、これらはサーバーに送信されるリクエストヘッダです:

server request headers

のみ最初のクッキー(age=44)が送信されます。コンソールにdocument.cookieを記録すると、'age=44'だけが返されます。 ChromeのUIからクッキーを検査する場合

、私も最初のものだけが保存されていることがわかります。

ここでの問題は何ですか?

chrome ui cookies

答えて

1

あなただけのバニラノードを使用しているなら、あなたは単にres.setHeader(field, value)の2番目のパラメータとして配列を渡すことができます:あなたはres.append(field [, value])を使用することができます4.11.0+ Expressを使用している場合

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=/'); 
+0

ありがとうございます!私はちょうどノードのドキュメントを見て、あなたが 'res.setHeader'で同じヘッダを複数回設定しようとすると、最後のものだけが使われるようです。配列のアプローチに言及してくれてありがとう。 –

関連する問題