一、cookie的获取
cookie没有单独获取某一项的方法,只有document.cookie方法获取整个cookie的键值对,将每个键值对用 ;隔开,并返回一个字符串。我们需要通过字符串方法将拆分成一个数组。实例:
我们如果想要获取某个键对应的值,可以用如下的函数封装:
function getCookie(key) {
let strCookie = document.cookie;
let arrCookie = strCookie.split(‘; ‘); // 注意分号后面其实还有一个空格
for(let value of arrCookie) {
let arrValue = value.split(‘=’); // 这里我们将每个数组项通过 = 再拆分一次,得到一个只有两项的数组
if (arrValue[0] === key) {
return arrValue[1];
}
}
}
这个函数返回的就是我们输入的键对应的值。如果该键存在的话。
二、cookie的删除
方法一:在控制面板手动删除。
方法二:其实cookie在JS中并没有一个具体的删除办法,但是我们可以通过相同键值会覆盖以及过期时间来解决cookie的删除问题 。
实例:
function delCookie(key) {
document.cookie = ${key}= ;expires=-1
; // 将键的值设为空白,再将过期时间设置为-1,表示为一个过期的时间,cookie自动失效了
}
当我们发送请求的时候,cookie如何跟着一起请求一直发送给后端
1、cookie没有过期
2、cookie中的域和这次请求的域是匹配的,cookie是不在乎端口的,只要域匹配即可
3、cookie中的path和这次请求的path是匹配的
4、比如cookie中的path是/news,则可以匹配的请求路径可以是/news、/news/detail、/news/a/b/c等等,但不能匹配/blogs
5、如果cookie的path是/,可以匹配所有的路径
6、验证cookie的安全传输
7、如果cookie的secure属性是true,则请求协议必须是https,否则不会发送该cookie
8、如果cookie的secure属性是false,则请求协议可以是http,也可以是https
9、如果一个cookie满足了上述的所有条件,则浏览器会把它自动加入到这次请求中
具体加入的方式是,浏览器会将符合条件的cookie,自动放置到请求头中
原文链接:https://blog.csdn.net/Silence_555/article/details/112550378