之前都是使用 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的方法