javascript 操作cookie

Posted RunningAndRunning

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript 操作cookie相关的知识,希望对你有一定的参考价值。


cookie的组成:
cookie由以下几个部分组成:
1. name
2. value
3. 其他属性(max-age、path、domain、secure)

  • max-age:cookie存在的秒树,max-age=1000,即此cookie会在1000秒后被删除。
  • path和domain:域名和路径定义了一个cookie的可见范围,它告诉浏览器这个cookie的归属范围。出于安全原因,domain只能设置为当前域名的上层域名,比如在example.com下就不能把cookie的domain设置为a.example.com,而a.example.com可以设置cookie的domain为example.com,对于 path ,如果一个 cookie 的 path 为 /doc 那么在 /doc/ 下面的所有页面都能访问到这个 cookie (前提是 domain 也是满足要求)
  • secure 设置这个属性之后,cookie就成为一个secure cookie,只会在加密传输的时候携带该cookie。

1. 设置cookie 

直接在document.cookie上面赋值就好了,不会影响原有的cookie值```

function setCookie(name, value, dayToLive, option) {
   var cookie = name + ‘=‘ + encodeURI(value);
   if (typeof datToLive === ‘number‘) {
      cookie += ‘;max-age=‘ + dayToLive * 24 * 60 * 60;
   }
  if (option) {
     for (var key in option) {
    if (key == ‘domain‘) {
       cookie += ‘;domain=‘ + option[key];
    } else if (key == ‘path‘){
       cookie += ‘;path=‘ + option[key];
   } else {
       cookie += ‘;secure‘;
   }
   }
}
   document.cookie = cookie;
}

2. 获取cookie 
浏览器端无法拿到cookie的过期时间、domain、path等信息,多条cookie之间是通过(;空格)分割的 /;\s/

function getCookie (name) {
var cookie = document.cookie;
var cookieArr = cookie.split(/;\s/);
for (var i = 0; i < cookieArr.length; i++) {
var pair = cookieArr[i].split(‘=‘);
if (pair[0] == name) {
return decodeURI(pair[1]);
}
}
return null;
}

 







以上是关于javascript 操作cookie的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript:set-cookie 和响应处理原子操作吗?

Javascript 操作 cookie

JavaScript之DOM-10 cookie (cookie概述cookie操作)

JavaScript 操作cookie

XSS:如何从 C# 中的字符串中删除 JS 片段?

JavaScript 操作 Cookie