cookie到期后没有自动删除

646 阅读1分钟

cookie缓存是前端最常用的缓存之一。

使用也很简单:

document.cookie = name + '=' + value + ';expires=' + expiresTime//其中//name:cookie名称//value:cookie内容,类型为string//expiresTime:失效时间

我常常使用这样的封装:

const setCookie = function(name, value, minutes) {    var millisecond = new Date().getTime();    var expiresTime = new Date(millisecond + 60 * 1000 * minutes);    document.cookie = name + '=' + value + ';expires=' + expiresTime}

一直没有发现有什么问题,直到有一天有个需求是前端设置一个数据的过期时间,过期后重新请求,这个时候才发现设置过期时间后cookie并没有自动清除。

查询资料发现cookie过期时间是需要GMT时区,expiresTime获取的是本地时间,而且不去打印cookie数据只是查看控制台数据是很难看出来的。

所以我将方法改了一下:

const setCookie = function(name, value, minutes) {    var millisecond = new Date().getTime();    var expiresTime = new Date(millisecond + 60 * 1000 * minutes);        document.cookie = name + '=' + value + ';expires=' + expiresTime.toGMTString()}

完结,撒花!