zoukankan      html  css  js  c++  java
  • 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也不错

  • 相关阅读:
    Android-View动画
    Android-RemoteView-桌面小部件
    系统的Drawable(四)-LayerListDrawable
    Android-Drawable(三)
    系统的Drawable(二)-Selector
    系统的Drawable(一)
    Android View事件分发-从源码分析
    打游戏要存进度-备忘录模式
    Java 内部类.md
    docker 常用 命令
  • 原文地址:https://www.cnblogs.com/Rombo713/p/13026061.html
Copyright © 2011-2022 走看看