Javascript Cookie未过期

时间:2019-03-03 14:03:10

标签: javascript cookies

我已经使用JavaScript创建了一个cookie。在Google chrome控制台(“应用程序”选项卡)中,我可以看到已经过了cookie排除时间,但该cookie仍存在于列表中:

var tempdate = new Date();
tempdate .setTime(tempdate.getTime() + (60 * 1000));
document.cookie = "lock=done; expires="+tempdate ;

列表中cookie的过期时间为:2019-03-03T 17:20:38.000Z

日期的控制台日志显示:2019-03-03T 17:25:41.984Z

当我使用ASP或PHP设置cookie时,cookie过期后,它会自动从此列表中删除。

编辑:这是我测试Cookie是否存在的方法:

<a onclick="check()">Check Again</a>
<script>
function check(){
   $.ajax({
    url:"check.asp",
    success:function(data){
      console.log(data); //Prints "lock"
    }
   })
}
</script>

这是Check.asp:

response.clear
if request.cookies("lock")="done" then response.write "lock"
response.end

2 个答案:

答案 0 :(得分:0)

我遇到了与您类似的问题,我在这里找到了解决方法:enter image description here

添加“路径= /;” (如果未指定路径,则某些浏览器不会删除cookie)。 希望对您有帮助。

答案 1 :(得分:0)

我已经找到了使用toUTCString()的解决方案,但是我不知道为什么UTC时间会影响Cookies(!):

我正在本地主机上进行测试,我自己的计算机时间是2019-03-03 18:45

var tempdate = new Date();
tempdate .setTime(tempdate.getTime() + (60 * 1000));
document.cookie = "lock=done; expires="+tempdate.toUTCString() ;

设置:2019-03-03T 15:15:07 .000Z作为到期时间,它可以正常工作,并且 1分钟后到期

var tempdate = new Date();
tempdate .setTime(tempdate.getTime() + (60 * 1000));
document.cookie = "lock=done; expires="+tempdate;

设置2019-03-03T 18:45:07 .000Z,并且在1分钟后不过期,但是我的计算机时间显示为18:45!