为什么response.cookies("key").Expires 会覆盖?
大家都知道 给cookies设置有效期 比如
response.cookies("user").Expires=DateAdd("d",100,Now())
我现在有个问题:
我发现 两端代码,第一段执行,不加Expires, 那么浏览器关闭就失效
第二段代码,加Expires, 指定时间失效。
好了,现在做个测试: 先执行有加Expires的代码段, 然后再执行没加Expires的代码段,
发现,执行了后面的代码之后,会使得 前面代码设置的Expires清空。
代码段一:
VBScript code
response.cookies("user").Expires=DateAdd("d",100,Now())
response.cookies("user")("id")=100
代码段二
VBScript code
response.cookies("user")("id")=100
另外一个独立的页面,作为读取cookies 测试用的
代码段三
VBScript code
response.write request.cookies("user")("id")
现在执行顺序是,
1,执行代码段一,然后关闭浏览器
2,打开浏览器执行代码三,cookies还存在
3,执行代码段二
4,关闭浏览器
5,执行代码段三
结果,发现 cookies不见了。
为什么呢?
难道每次给cookies赋值,都要说明过期时间吗?
------解决方案--------------------cookie = request.cookie("user");
cookie("id") = 100;
response.cookies("user") = cookie
第二步换成这样试试
------解决方案--------------------cookie = request.cookies("user");
cookie("id") = 100;
response.cookies("user") = cookie
少个s
------解决方案--------------------不设Expires默认就是关闭浏览器后失效。
可以用firebug跟踪一下cookie字符串就知道了,可以看到每次expires=;的设置。