js cookie无法删除,总是剩下一个

发布于 2022-09-11 21:58:03 字数 1299 浏览 39 评论 0

export function getCookie(name) {
    var cookieArr = document.cookie.split("; "); //使用"; "分割Cookie
    var cva = [],
        temp;
    //循环的得到Cookie名称与值
    for (var i = 0; i < cookieArr.length; i++) {
        temp = cookieArr[i].split("="); //用"="分割Cookie的名称与值
        cva[temp[0]] = unescape(temp[1]);
    }
    if (name) {
        //如果有name则输出这个name的Cookie值
        return cva[name];
    } else {
        //如果没有name则输出空数组
        return cva;
    }
}
/**
 * 保存cookie(保存时间为30天)
 * @param name
 * @param value
 */
export function setCookie(name, value) {
    var domain = '.' + location.host;
    var Days = 30;
    var exp = new Date();
    exp.setTime(exp.getTime() + Days * 24 * 60 * 60 * 1000);
    document.cookie = name + "=" + escape(value) + ";expires=" + exp.toGMTString() + "Domain" + domain + ";path=/";
}
/**
 * 删除cookie
 * @param name
 */
export function delCookie(name) {
    var domain = '.' + location.host;
    var exp = new Date();
    exp.setTime(exp.getTime() - 1);
    var cval = getCookie(name);
    if (cval != null) {
        document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString() + "Domain" + domain + ";path=/";
    }
}

clipboard.png

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

旧话新听 2022-09-18 21:58:03

不知道你为什么删除的时候,还剩下一个,按照道理不应该;既然能删除一个,就能删除其他的。

唯一的需要关注:

  1. 域名对不对
  2. path对不对
  3. 是不是http only 的

最后,这种手写看上去很不错。 但是给你推荐一个 库 js-cookie 用来处理cookie 很不错; 也可以参考他的源码实现

何必那么矫情 2022-09-18 21:58:03

楼上说的很对,就是这个思路
还有就是看看是不是站点自动在往上加啊,我之前也遇见过,发现是站点轮训在写 cookie

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文