关于cookie的一些小问题

  这个随笔我会不断更新。

1.首先困扰了我几分钟的是,虽然在ide的‘提词器’里,express似乎支持req.cookie,但事实上至少在目前4.x版本的express中这个值一直是undefined,害得我还以为我浏览器cookie设置失败了(PS:我没有用什么类似cookie-parser这种中间件)。找了几分钟也没找到在哪能读到cookie,express的API中并没有提到,只是建议使用cookie-parser中间件。可我偏就想不用中间件直接读出cookie字符串,毕竟这玩意是每次http请求都会带上的。

  后来果然在req.header(cookie)里找到了。讲真,req.header这种方法在express的API里只字不提真的好吗,难道是默认大家都知道了?←菜鸡的悲鸣。

 

2.其次,我以为删掉cookie是通过在对应的名值对以后添加“max-age=0;”来实现的,可实际操作后却发现用document.cookie+=“max-age=0;” 并不会直接把最后一项删掉,而会导致一些很有趣的现象,有时是把cookie中的第一对名值对给移到最后,有时是把第一对名值对给删除了,这种怪异的行为我怀疑和浏览器或者“+=”符号的操作有关,cookie并不单纯地被当做是一个字符串,毕竟直接给cookie一个新值并不会导致其旧值的消失。正确的做法似乎是把要删除的名值对后面加上“max-age=0”,再把这一坨整体赋值给cookie。

posted @ 2017-04-16 15:01  洛尔卡  阅读(151)  评论(0编辑  收藏  举报