Cookie清除原理
Cookie的清除就是设置失效时间。
为什么会出现Cookie删不掉的情况
我碰到Cookie删不掉的情况是设置了domain,做同一主域名下的数据共享。 当清除时,如果域名混乱的话,就会出现cookie清除不掉的问题。
( 更重要的是开发时的规划有问题,数据共享时,域的设置比较混乱 )
代码
function clearAllCookie() {
// 获取所有 cookie
let cookies = document.cookie.split(';')
const host = window.location.host
// 嵌套一个递归函数,将每一级域名下的cookie都清除
function setDomain(host, cookie) {
const cookieEach = cookie
if (host.includes(import.meta.env.VITE_DOMAIN)) {
cookie += ';expires=Thu, 01 Jan 1970 00:00:00 GMT;path=/;'
cookie += '; domain=' + host
document.cookie = cookie
const reg = /^\w{0,100}[.]/g
const hostDomain = host.replace(reg, '')
setDomain(hostDomain, cookieEach)
}
}
// 遍历所有 cookie,并将过期时间设置为过去
for (let i = 0; i < cookies.length; i++) {
let cookie = cookies[i]
setDomain(host, cookie)
}
}