一、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. 1cookie没有过期
    2. 2cookie中的域和这次请求的域是匹配的,cookie是不在乎端口的,只要域匹配即可
    3. 3cookie中的path和这次请求的path是匹配的
    4. 4、比如cookie中的path是/news,则可以匹配的请求路径可以是/news、/news/detail、/news/a/b/c等等,但不能匹配/blogs
    5. 5、如果cookiepath是/,可以匹配所有的路径
    6. 6、验证cookie的安全传输
    7. 7、如果cookiesecure属性是true,则请求协议必须是https,否则不会发送该cookie
    8. 8、如果cookiesecure属性是false,则请求协议可以是http,也可以是https
    9. 9、如果一个cookie满足了上述的所有条件,则浏览器会把它自动加入到这次请求中

    具体加入的方式是,浏览器会将符合条件的cookie,自动放置到请求头中

    原文链接:https://blog.csdn.net/Silence_555/article/details/112550378