javascript - 无法使用我自己的功能删除 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);
}