封装cookie,自定义过期时间,domain,path
在使用Cookie进行存储的时候,遇到了许多不可思议的bug,特地标识出来,以作总结。
是这样一个项目,登录是放在官网进行操作的,而登录进入的是后台,后台和官网属于同一域名的不同目录,那么常规进行cookie进行存储的话,在后台则会访问不到这个cookie,所以需要配置domain和path。
class Cookie { static getItem(objName) { let arrStr = document.cookie.split("; "); for (let i = 0; i < arrStr.length; i++) { let temp = arrStr[i].split("="); if (temp[0] == objName) return unescape(temp[1]); } } static setItem(name, val,obj= { expire : 86400 , domain : document.domain,path:'/'}) { let { expire, domain, path } = obj; if(!expire){ expire=86400; } if(!domain){ domain=document.domain; } if(!path){ path='/'; } let str = name + "=" + escape(val) + ";domain=" + domain + ";path=" + path + ";"; let date = new Date(); date.setTime(date.getTime() + expire * 1000); str += ";expires=" + date.toUTCString(); document.cookie = str; } static removeItem(name, obj={domain:document.domain,path:'/'}) { let { domain, path } = obj; if(!domain){ domain=document.domain; } if(!path){ path='/'; } Cookie.setItem(name, 'expire', { domain, path, expire: -86400, }); } } export default Cookie;
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步