用的是js-cookie.js
基础用法的话可以参考这个博主:
https://www.cnblogs.com/NanKe-Studying/p/13952558.html
非常的简介明了。
在设置domain域时:
- 无法设置除当前域名或者其父域名之外的其他domain.
这个是浏览器出于对cookie的保护造成的,也就是cookie无法跨域设置。 - 所设置的域必须是经过备案的。
- 尽可能用 .baidu2.com (www.baidu1.baidu2.com)来设置domain。
在清除cookies时:
Cookies.remove(arr[0])无法直接删除直接的cookie。(本地环境是可以删除的,生产不行。)
需要设置指定的path或者domain来清除指定的cookie,例如:Cookies.remove(arr[0], { path: ‘/’, domain: ‘.baidu2.com’ })。应该是浏览器为了保护cookie而做的处理,以免被随意删除。
在做上述两种操作时,往往本地域名和生产域名以及效果都会有差别,需要区分开发环境和生产环境做不同的处理。
更新:
原生cookies操作:
参数名 | 说明 | 例子 |
---|---|---|
path | 默认是当前文档的目录 | / |
domain | cookie 作用域名,不同域名会有不同的 cookie | .baidu.com |
max-age | 秒为单位,最大存活时长 | / |
expires | 存活截止时间。Date.toUTCString() 形式的时间格式。 如果 max-age 和 expires 都没有设置,这个 cookie 就是 session 类型的,关闭当前窗口就删掉了 | Mon, 16 Dec 2019 01:45:15 GMT |
secure | 通过 https 传输 |
设置cookie
document.cookie = ${arr[0]}=${arr[1]};path=/;expires=${new Date(new Date().setDate(new Date().getDate() + 30)).toGMTString()}
附带一个设置30天后有效期:new Date(new Date().setDate(new Date().getDate() + 30)).toGMTString()
删除cookie:
过期时间是以GMT格式表示的时间字符串,超过这个时间,cookie将消失,不可访问。因此,删除一个cookie,可以将其过期时间设定为一个过去的时间,例如:document.cookie = “name=; expires=Thu, 01 Jan 1970 00:00:00 GMT”;
注意:删除时,不需要指定cookie的值