node.js中如何向客戶端發送COOKIE呢?
有以下兩個方案:
1、使用response.writeHead,代碼示例:
//設置過時時間爲一分鐘 javascript
var today = new Date(); var time = today.getTime() + 60*1000; var time2 = new Date(time); var timeObj = time2.toGMTString(); response.writeHead({ 'Set-Cookie':'myCookie="type=ninja", "language=javascript";path="/";Expires='+timeObj+';httpOnly=true' });
語法以下(具體每一個字段的解釋,請看下文的「options字段含義」):
Set-Cookie:'
cookieName=cookieValue;
[expires=]
[;domain=]
[;path=]
[;secure=]
[;httpOnly=]
'
經過查看,COOKIE以下圖所示:
缺點:使用response.writeHead只能發送一次頭部,即只能調用一次,且不能與response.render共存,不然會報錯 php
2、使用response.cookie,代碼示例以下:
html
response.cookie('haha', 'name1=value1&name2=value2', {maxAge:10*1000, path:'/', httpOnly:true});
response.cookie('cookieName', 'name=value[name=value...]',[options]);
經過查看,COOKIE以下圖所示:
java
參考資料:
一、http://nodejs.org/api/http.html#http_response_setheader_name_value
二、http://www.cnblogs.com/rubylouvre/archive/2012/08/19/2645644.html
三、http://expressjs.com/api.html#res.cookie
四、http://mao.li/node/node-js-handle-cookie/
node