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 和响应处理原子操作吗?