I have a function called deleteCookie to delete cookies. When I do some test cases, any of the test cases seems fine except for a cookie name=John
. I have set this cookie two or three days ago but when I'm trying to delete it using my own function, name=John
is still here. I'm wondering is there anything wrong with my function, or is there anything I don't know about when I'm deleting 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);
}