之前都是使用 php 对 cookie 进行操作,今天有个需求,需要用 js 获取网站的 cookie 。下面开始:
获取 cookie 存为数组:
- let cookieArr = document.cookie.split(";")
遍历数组,存为对象:
- let cookieObj = {};
- for (let i = 0; i < cookieArr.length; i++) {
- if (cookieArr[i]) {
- cookieSplit = cookieArr[i].split("=");
- cookieObj[cookieSplit[0]] = cookieSplit[1];
- }
- }
不过这里需要注意一下,这样直接使用是不行的,会报错 undefined
。
因为便利出来的 name
和 value
是带有空格的。
所以需要再处理一下,可以封装成一个方法:
- function getCookieObj () {//根据name获取cookie的值
- let cookieObj = {},
- cookieSplit = [],// 以分号(;)分组
- cookieArr = document.cookie.split(";"),;
- for (var i = 0; i < cookieArr.length; i++) {
- if (cookieArr[i]) {
- cookieSplit = cookieArr[i].split("=");//以等号(=)分组
- cookieObj[cookieSplit[0].replace(/^\s*|\s*$/g, "")] = cookieSplit[1].replace(/^\s*|\s*$/g, "");//删除字符串两边的空格
- }
- }
- return cookieObj;
- }
使用时直接调用即可:
- var c = getCookieObj(),
- t = c.token;
未经允许不得转载:前端资源网 - w3h5 » JavaScript获取cookie的方法