参数 | 描述 |
---|---|
name | 必需。规定 cookie 的名称。 |
value | 必需。规定 cookie 的值。 |
expire | 可选。规定 cookie 的有效期。(new Date()) |
path | 可选。规定 cookie 的服务器路径。 |
domain | 可选。规定 cookie 的域名。 |
secure | 可选。规定是否通过安全的 HTTPS 连接来传输 cookie。 |
1、新增cookie
function addCookie(name,value,expire,path,domain){
document.cookie= name + '=' + value +
((path)?';path='+path:'') +
((expire)?';expires='+expire:'') +
((path)?';path='+path:'') +
((domain)?';domain='+domain:'')
}
2、删除cookie
function deleteCookie(name,path,domain){
document.cookie= name + '=' +
((path)?';path='+path:'') +
((domain)?';domain='+domain:'') +
';expires=Thu,01-Jan-1970 00:00:01 GMT';
}
3、清除cookie
function clearCookie(){
let paths = ['/']
let domain =[]
let host = location.hostname
domain.push(host)
if(host.indexOf('www') > -1){
domain.push(host.substr(3))
}
let keys = document.cookie.match(/[^ =;]+(?=\=)/g)
function deleteCookie(name,path,domain){
let keys = document.cookie.match(/[^ =;]+(?=\=)/g) || []
if(keys.indexOf(name)<0)return
document.cookie= name + '=' + ((path)?';path='+path:'') + ((domain)?';domain='+domain:'') + ';expires=Thu,01-Jan-1970 00:00:01 GMT';
}
// 确保paths、domain、keys都不相同,都要进行清除
paths.forEach(p=>{
domain.forEach(d=>{
keys.forEach(k=>{
deleteCookie(k,p,d)
})
})
})
}
4、 删除不掉的情况
Domain的域不同的时候;
Http/HttpOnly被勾选、Secure被勾选:后端写入,不允许修改