JS Cookie获取值 |
您所在的位置:网站首页 › 前端获取cookie的方法 › JS Cookie获取值 |
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 |