• 封装cookie,自定义过期时间,domain,path


      在使用Cookie进行存储的时候,遇到了许多不可思议的bug,特地标识出来,以作总结。

      是这样一个项目,登录是放在官网进行操作的,而登录进入的是后台,后台和官网属于同一域名的不同目录,那么常规进行cookie进行存储的话,在后台则会访问不到这个cookie,所以需要配置domain和path。

    class Cookie {
        constructor() {
            this.setItem = this.setItem.bind(this);
        }
        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='/';
            }
            this.setItem(name, 'expire', {
                domain,
                path,
                expire: -86400,
            });
        }
    }
    export default Cookie;
  • 相关阅读:
    printf()参数的处理
    const关键字作用
    static的作用
    程序调试的方法
    引用与指针的区别
    内存对齐
    Android UI开发详解之ActionBar
    Android ActionBar使用方法
    android的系统学习
    Activity 切换动画
  • 原文地址:https://www.cnblogs.com/gitByLegend/p/11057057.html
Copyright © 2020-2023  润新知