cookies在js和netcore联合下又欺负了我

一开始我是使用js的document.cookie

以下代码是转发:

//写cookies

function setCookie(name,value)
{
    var Days = 30;
    var exp = new Date();
    exp.setTime(exp.getTime() + Days*24*60*60*1000);
    document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
}

//读取cookies
function getCookie(name)
{
    var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
 
    if(arr=document.cookie.match(reg))
 
        return unescape(arr[2]);
    else
        return null;
}

//删除cookies
function delCookie(name)
{
    var exp = new Date();
    exp.setTime(exp.getTime() - 1);
    var cval=getCookie(name);
    if(cval!=null)
        document.cookie= name + "="+cval+";expires="+exp.toGMTString();
}

但是!!!这样在页面B写入cookie之后,重新访问页面A,是不存在cookie,再跳转到页面B却有cookie,此时还没有写入新的cookie

也就是说,js的document.cookie是写入到当前页面的!而不是域名对应的浏览器缓存

试了path设置成"/",也试了domain也还是不行

所以,最后我改成了用后端写入cookie

不过,要注意的是cookie长度限制,超长会直接为空,最大应该是4k

顺便一提:如果只是存在前端,使用localStorage也不错

posted @ 2020-06-01 16:54  DoKey713  阅读(126)  评论(0编辑  收藏  举报