cookie的设置

cookie

是什么:是一种用来在客户端硬盘上存储信息的手段。
为什么用?:可以用来存储一些信息,实现一些特殊的效果。例如实现多少天内免登陆,或者存储一些小数据。

cookie中的一些字段含义:

  1. key=value(键=值) 就是 cookie的一个键值对,一般是根据key拿到对应的value
    expires(过期时间)设置该cookie的过期时间,也是用 ‘;’ 来隔开,expires=GMT的时间字符串,例如要30天免登陆,就可以设置过期时间为今天开始的30天之后的日期。如果不设置过期时间,默认浏览器关闭该cookie就消失了。
  2. path(路径) cookie并不是在哪里都能够获取到的。在网站中分为很多目录,可能很多目录中不需要使用到cookie,所以可以设置cookie的路径,这样更加安全,避免任意目录都能访问到该cookie。通过 path=/E:javascript/test 这样只能在该目录下才能获取到该cookie
  3. domain(域)默认该cookie在该cookie所在域名下才能够访问到,但是有时候a.chaijinsong.com需要访问b.chaijinsong.com下的cookie,这时候就需要设置domain=chaijinsong.com。这样两个子域名都可以访问该cookie
  4. secure(安全性) 默认secure是为false的,即通过http协议来传输,但是如果 secure=true 的话,就只能t通过https来进行传输

怎么用?:

document.cookie; //获取cookie
"aaa=aaa;bbb=bbb" //类似于这种格式,但是并不是字符串。

//设置cookie,也可以用来进行删除cookie,即将过期时间设置为过去的时间,最后一个参数可以传负数来实现
function setCookie(cname,cvalue,exdays){
  var d = new Date();
  d.setTime(d.getTime()+(exdays*24*60*60*1000));
  var expires = "expires="+d.toGMTString();
  document.cookie = cname + "=" + cvalue + "; " + expires;
}

setCookie('cjs','cjs',30); //设置 name为cjs,value为cjs的一个cookie,并且时间为30天。
setCookie('cjs','cjs',-1); //让该cookie过期,然后在document.cookie中就没有cjs=cjs这个cookie了。但是其他key=value还存在

//获取某个key的cookie
function getCookie(key){
    let arr1 = document.cookie.split(';');
    for(let i=0;i<arr1.length;i++){
        let arr2 = arr1[i].split('=');
        if(key.trim() === arr2[0].trim()){
            return (arr2[1]);
        }
    }
    return "";
}

getCookie('cjs'); //因为上面已经将cjs这个cookie干掉了,所以这里得到为 ""

注意:在google浏览器上本地html文件打开直接给cookie赋值是不允许的,但是firfox可以。所以想要测试的话先在本地开服务器,让后使用本地ip访问该文件。进行cookie的操作。

我的文章都会在gitbook上找到,觉得不错的的可以看一下。顺便给个star,哈哈!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值