Cookie问题

网站通过cookie实现夜间模式——cookie mode字段值为sun时调整背景为白色,night时调整为黑色。

在调试中发现如果在下级目录设置mode值为night,回到上级目录后仍然显示白色背景,手动点击切换模式按钮后cookie中出现一个路径不同的mode字段。

原因是设置cookie时没有指定路径path,原setCookie代码:

function setCookie(name, value) {
    var Days = 1;
    var exp = new Date();
    exp.setTime(exp.getTime() + Days * 24 * 60 * 60 * 1000);
    document.cookie = name + "=" + value + ";expires=" + exp.toGMTString();
}

更正后:

function setCookie(name, value) {
    var Days = 1;
    var exp = new Date();
    exp.setTime(exp.getTime() + Days * 24 * 60 * 60 * 1000);
    document.cookie = name + "=" + value + ";expires=" + exp.toGMTString() + ";path=/";
}

这样指定路径后,在不同目录下设置cookie,其路径都为根目录。不管跳转到任何目录,读取的都为同一个cookie。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据