背景:今天搞一个前端页面,存了一些数据在cookie里面,这样就省的频繁的请求后端,没想到,在另一个页面居然拿不到!!!日志一看,直接是null!!!

  1. cookie里的值可以设置时效性,但不会因为打开另外的页面、关闭浏览器、刷新而导致被清空的问题,所以用它来存储一些比较小的和不常变的数据,还是挺好用的。
  2. cookie在set过程中如果不指定存储路径,会根据页面路径进行存储,取的时候也会根据当前页面去拿值。
  3. 以下是setCookie方法
//导致我在登录页存储的数据(cookie值给我存到/login这个路径去了),在主页找不到这个cookie值!!!
function setCookie(name, value, iDay) {
    var oDate = new Date();
    oDate.setDate(oDate.getDate() + iDay);
    document.cookie = name + '=' + encodeURIComponent(value) + ';expires=' + oDate;
}

//修正后代码,默认存储在‘/’跟路径下,这样和我的主页cookie路径一致了
function setCookie(name, value, iDay) {
    var oDate = new Date();
    oDate.setDate(oDate.getDate() + iDay);
    document.cookie = name + '=' + encodeURIComponent(value) + ';expires=' + oDate + ';Path='+escape("/");
}

总结:一开始还纳闷为啥cookie不起作用,以前明明用的好好的,导致这次卡了好久,以为是代码没更新过来,浏览器没有清缓存啥的,哈哈哈,以后写cookie的时候,一定要注意存储路径,避免二次踩坑!!!

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐