首页 > 解决方案 > 无法使用我自己的功能删除 cookie

问题描述

我有一个名为 deleteCookie 的函数来删除 cookie。当我做一些测试用例时,除了 cookie 之外,任何测试用例似乎都很好name=John。我在两三天前设置了这个 cookie,但是当我尝试使用我自己的函数删除它时,name=John它仍然在这里。我想知道我的功能有什么问题,或者当我删除 John 时有什么我不知道的

window.onload = () => {
    "use strict";
    let setCookie = (cname, cvalue, exdays, cpath) => {
        let d = new Date();
        d.setTime(d.getTime() + exdays * 24 * 60 * 60 * 1000);
        d.toUTCString();
        document.cookie = `${cname}=${cvalue}; expires=${d}; path=${cpath}`;
    }
    let getCookie = (cname) => {
        let ca = decodeURIComponent(document.cookie).split("; ");
        let name = cname + "=";
        for (let i =0; i < ca.length; i++) {
            while (ca[i][0] === " ") {
                ca[i] = ca[i].substring(1)
            }
            if (ca[i].indexOf(name) === 0) {
                return ca[i].substring(name.length, ca[i].length)
            }
        }
    }
    let deleteCookie = (cname, cpath) => {
        let c = getCookie(cname);
        if (c !== undefined && c !== null) {
            let d = new Date(0);
            d.toUTCString();
            document.cookie = `${cname}=; expires=${d}; path=${cpath}`;
            return c;
        } else {
            return -1
        }
    }
    let changeCookie = (cname, cvalue, exdays, cpath) => {
        let c = getCookie(cname);
        if (c !== undefined && c !== null) {
            let d = new Date();
            d.setTime(d.getTime() + exdays * 24 * 60 * 60 * 1000);
            d.toUTCString();
            document.cookie = `${cname}=${cvalue}; expires=${exdays}; path=${cpath}`;
        } else {
            return -1
        }
    }
    setCookie("name", "Ben", 7, "/home/ubuntu/Documents/test/test.html");
    console.log(document.cookie)
    changeCookie("name", "Sam", 7, "/home/ubuntu/Documents/test/test.html");
    console.log(document.cookie);
    console.log(deleteCookie("name", "/home/ubuntu/Documents/test/test.html"));
    console.log(document.cookie);
    console.log(deleteCookie("name", "/home/ubuntu/Documents/test/test.html"));
    console.log(document.cookie);

}

标签: javascriptcookies

解决方案


推荐阅读