JS Cookie获取值

您所在的位置:网站首页 前端获取cookie的方法 JS Cookie获取值

JS Cookie获取值

2023-08-06 04:12| 来源: 网络整理| 查看: 265

Cookie

Cookie 是直接存储在浏览器中的一小串数据。它们是 HTTP 协议的一部分,由 RFC 6265 规范定义。

Cookie 通常是由 Web 服务器使用响应 Set-Cookie HTTP-header 设置的。然后浏览器使用 Cookie HTTP-header 将它们自动添加到(几乎)每个对相同域的请求中。

最常见的用处之一就是身份验证:

登录后,服务器在响应中使用 Set-Cookie HTTP-header 来设置具有唯一“会话标识符(session identifier)”的 cookie。下次如果请求是由相同域发起的,浏览器会使用 Cookie HTTP-header 通过网络发送 cookie。所以服务器知道是谁发起了请求。    特点:

            1.按照域名来存储的

                不同的域名下的cookie数据不共通。

            2.有存储的路径

                127.0.0.1:8080/a/b.html  cookie /a/b  /

                127.0.0.1:8080/b/b.html  cookie /b/b

            3.cookie 存储的数据格式

                "键1=值1;键2=值2"

            4.存储大小

                4KB   50条左右

            5.时效性:

                默认是会话级别

                我们可以手动设置cookie的过期时间

        

写入 document.cookie

我们可以写入 document.cookie。但这不是一个数据属性,它是一个访问器(getter/setter)。对其的赋值操作会被特殊处理。

对 document.cookie 的写入操作只会更新其中提到的 cookie,而不会涉及其他 cookie。

例如,此调用设置了一个名称为 user 且值为 yasuo的 cookie:

document.cookie = "user=yasuo"; // 只会更新名称为 user 的 cookie alert(document.cookie); // 展示所有 cookie

如果你运行了上面这段代码,你会看到多个 cookie。这是因为 document.cookie= 操作不是重写整所有 cookie。它只设置代码中提到的 cookie user。

获取Cookie中相应键对应的值

document.cookie 的值由 name=value 对组成,以 ; 分隔。每一个都是独立的 cookie。

有两种获取方法:

1、通过分割字符串

2、通过indexof检索、和substring截取字符串

1、截取字符串 // key 键 function getCookie(key) { if (document.cookie.length > 0) { // 字符串按照分号分割,得到数组 var arr = document.cookie.split(";"); for (var i = 0; i < arr.length; i++) { // trim:删除空格,按照等号分割,得到[键,名]的数组 var t = arr[i].trim().split("="); // 判断键是否相等,返回相应的值 if (t[0] === key) { return t[1]; } } } return ""; } 2、检索截取 function getCookie(key) { console.log(document.cookie); if (document.cookie.length > 0) { var s = document.cookie.indexOf(key + "="); // 判断是否为第一个 if (s == 0) { var start = document.cookie.indexOf(key + "="); // 判断是否查找到 if (start != -1) { var end = document.cookie.indexOf(";", start); // 判断是否为最后一个 if (end == -1) { return end = document.cookie.length; } // 获取值 return document.cookie.substring(start + key.length + 1, end); } } else { // 查询的键不是第一个,这通过"; "//防止usename和name这样的键 + key + "="//防止names和name这样的键,获取下标; var start = document.cookie.indexOf("; " + key + "=") + 2; // 判断是否检索到 if (start != 1) { // 从键开下标检索,到下一个分号;的到键对应值结束的下标 var end = document.cookie.indexOf(";", start); if (end == -1) { end = document.cookie.length; } console.log(start); // 截取键长度加等号之后的值 return document.cookie.substring(start + key.length + 1, end); } } } return ""; }

 

 

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3