啊哈,说好的一周三更。但是这礼拜稀里糊涂的过的太忙了,直到今天才有时间写会儿。
Cookie 我们都熟悉,存取东西的大杀器,之前也经常用。
但是今天用的时候突然,诶?? 出问题了
今天就是很正常的存放了Cookie后,因为需求。需要用cookie的过期时间做判断
我心想,这不很简单吗,直接拿来用判断就好了。
结果。。。
没取到???
有点上头,在来一次
。。。
还是没取到,然后开始各种调试,各种查找。
最后,在一个我看见了但是没记住的帖子里面翻到一句话,原话记不得了,大意就是
cookie的Expire不会TNND跟着请求一起发过来,只能客户端使用。
我TM心态崩了啊,用这么久都不知道。
然后知道了不行,事儿还得解决啊,于是,于是,于是,我就把过期时间给加到了Value里面
然后在取出来。
嗯,就是这样。
然后继续写逻辑,
else 删除cookie
response,干掉。非常完美,一切都按照我的计划进行。
现在开始调试
emmm?怎么没删掉,没有问题啊。都写的对啊。我也不是在request里面删除的啊
哪里出了问题呢?
------------------------------------------------------------------------------------
最终,被我研究出来了(百度调试)
我不确定是不是标准答案,但是在我仔细思索了一番原理之后这么写就可以了。
首先Cookie是保存在客户端本地的,服务器是没有办法掌握生杀大权的,
服务器发回信息只是给一个建议,大意就是,我修改了这个cookie,浏览器大佬接收一下。
服务器给的只是一个返回值,返回的信息提交给浏览器本地。
因为最终浏览器是控制Cookie的生杀大权的,那么当浏览器查到这个cookie过期后会把它进行清空。
为啥清空呢(浏览器判定cookie是否过期是用过期时间来判断的,所以只需要把cookie的过期时间设置为今天之前就可以。当浏览器发现这个cookie过期了,就会从本地清除)这应该是除了小白都知道把。
所以,我只需要写一个新的cookie 然后用同样的名字去覆盖掉原有的cookie,这事儿不就成了吗?
果然,当我这么写的时候,就OK了
罪过,罪过。
这事儿以前都知道,今天怎么就糊涂了呢?
但是,在我的耐心思索下,还是解决了问题。
可能我的方法是Low了点点,不过,事儿不是解决了吗。
虽然我博客可能写的不太好,不过,原理我不是讲清楚了吗!
最后,如果有大佬路过,轻喷,欢迎探讨