Cookie 是一种存储在用户计算机上的小文件,包含了与某个网站相关的用户信息。浏览器每次向服务器发送请求时,会将 Cookie 信息附加在 HTTP 请求头部中,服务器端可以通过从头部解析得到的 Cookie 信息来判断用户状态并作出相应的响应。
JS 读取 Cookie 方法总结
什么是 Cookie?
Cookie 是一种存储在用户计算机上的小文件,包含了与某个网站相关的用户信息。浏览器每次向服务器发送请求时,会将 Cookie 信息附加在 HTTP 请求头部中,服务器端可以通过从头部解析得到的 Cookie 信息来判断用户状态并作出相应的响应。
如何读取 Cookie?
以下是几种常用的 JS 读取 Cookie 的方法:
1. document.cookie
通过document.cookie
可以读取当前页面请求中携带的所有 Cookie 信息,返回的是一个由键值对字符串组成的字符串。示例如下:
const cookie = document.cookie;
console.log(cookie);
// 输出示例: "__cfduid=d36072b4f98835a4871a9b11d0f4218991592144044; _ga=GA1.2.1470674.1595726819; Hm_lpvt_620bfd7553724d8e4f3ac4331a0f6295=1597183958; Hm_lvt_620bfd7553724d8e4f3ac4331a0f6295=1595726819"
需要注意的是,document.cookie
返回的字符串中每个键值对之间都以分号加空格分隔。
2. 使用 Regex 匹配
如果想要读取某个具体键的值,可以使用正则表达式进行匹配。示例如下:
function getCookieValue(key) {
const regex = new RegExp(`${key}=([^;]+)`);
const match = document.cookie.match(regex);
return match && match[1];
}
console.log(getCookieValue('username'));
// 假设当前 Cookie 中有键为 'username',且其值为 'tom',则输出 'tom'
上述代码将会读取当前页面中所有的 Cookie 信息,使用正则表达式匹配到键为 'username' 的键值对,并返回对应的值。
3. 使用第三方库
除了手动编写正则表达式进行匹配以外,还可以使用一些第三方库,如 js-cookie
。使用该库可以通过简单的 API 快速读取、设置和删除 Cookie。示例如下:
// 先安装 js-cookie 库,安装命令: npm install js-cookie
import Cookies from 'js-cookie';
// 获取键为 'username' 的 Cookie
const username = Cookies.get('username');
// 设置一个名为 'password' 的 Cookie
Cookies.set('password', '123456', { expires: 7 });
// 删除键为 'username' 的 Cookie
Cookies.remove('username');
在以上代码中,我们先使用 import
语句引入了 js-cookie
库。然后,通过 Cookies.get
方法获取当中键为 'username'
的 Cookie 值;通过 Cookies.set
方法设置一个名为 'password'
的 Cookie 值为 '123456'
,并设置其过期时间为 7 天;最后,通过 Cookies.remove
方法删除名为 'username'
的 Cookie。
小结
本文介绍了 JS 读取 Cookie 的三种方法,包括 document.cookie
、使用正则表达式匹配和使用第三方库 js-cookie
。具体使用时需要视情况而定,但这些方法足够满足大多数场景。
本文标题为:js读取cookie方法总结
- 浅谈前端JS沙箱实现的几种方式 2024-01-14
- Ajax登陆使用Spring Security缓存跳转到登陆前的链接 2023-02-23
- Ajax+php实现商品分类三级联动 2023-01-20
- Django Ajax的使用教程 2023-02-14
- 关于 javascript:Mapbox GeoJSON 通过本地 URL 加载:图标 2022-09-21
- 用CSS来实现一些动画在vue中使用之流星滑过(3) 2023-10-08
- JavaScript实现动态删除列表框值的方法 2023-11-30
- ajax和jsonp跨域的原理本质详解 2023-02-14
- 微信小程序教程系列之页面跳转和参数传递(6) 2023-12-23
- Vue 中对计算属性的一点理解 针对get set方法 2023-10-08