如何在 JS 中记录 cookie 的某个部分
How to log a certain part of a cookie in JS
我有 set-cookie
的响应 header,值为 set-cookie: frontend=2j5mfe8nidhhmltlaoliu5bmj6; expires=Thu, 10-Sep-2020 22:52:25 GMT; Max-Age=86400; path=/; domain=www.shoepalace.com; httponly
,我只想记录 frontend=
之后的 cookie 部分,直到 ;
(即 2j5mfe8nidhhmltlaoliu5bmj6
)
const string = response.headers['set-cookie']
console.log(string)
That logs this:
[
'frontend=0uhi7fj03fro4f5n2at4ev1t77; expires=Fri, 11-Sep-2020 01:15:47 GMT; Max-Age=86400; path=/; domain=www.shoepalace.com; HttpOnly',
'__cf_bm=2d7abb53a603ff50426362615a2cba7c3bd0d58c-1599700547-1800-AVURmHeYokYbppItftnydR/xiAuOS75aQzUlJoxN/79VKKgYr9d7cx6DmgdSK4BbvjQ/pjC0+5lQXkLdn/QIdII=; path=/; expires=Thu, 10-Sep-20 01:45:47 GMT; domain=.shoepalace.com; HttpOnly; Secure; SameSite=None'
]
const pairs = string.split(';')
const obj = {}
pairs.forEach(pair => {
const split = pair.split('=')
const key = split[0]
const value = split[1]
obj[key] = value
})
console.log(obj.frontend)
像这样:
const cookies = [
'frontend=0uhi7fj03fro4f5n2at4ev1t77; expires=Fri, 11-Sep-2020 01:15:47 GMT; Max-Age=86400; path=/; domain=www.shoepalace.com; HttpOnly',
'__cf_bm=2d7abb53a603ff50426362615a2cba7c3bd0d58c-1599700547-1800-AVURmHeYokYbppItftnydR/xiAuOS75aQzUlJoxN/79VKKgYr9d7cx6DmgdSK4BbvjQ/pjC0+5lQXkLdn/QIdII=; path=/; expires=Thu, 10-Sep-20 01:45:47 GMT; domain=.shoepalace.com; HttpOnly; Secure; SameSite=None'
]
let frontendValue
cookies.forEach(cookie => {
const pairs = cookie.split(';')
pairs.forEach(pair => {
const split = pair.split('=')
const key = split[0]
if (key === 'frontend') {
frontendValue = split[1]
}
})
})
console.log(frontendValue)
- 我们在每一个之后将字符串分割成一个数组;
- 我们创建一个空的object/dictionary/map
- 遍历我们得到的所有 key-value 对
- 再次分裂=
- 读取键和return前端的值
我有 set-cookie
的响应 header,值为 set-cookie: frontend=2j5mfe8nidhhmltlaoliu5bmj6; expires=Thu, 10-Sep-2020 22:52:25 GMT; Max-Age=86400; path=/; domain=www.shoepalace.com; httponly
,我只想记录 frontend=
之后的 cookie 部分,直到 ;
(即 2j5mfe8nidhhmltlaoliu5bmj6
)
const string = response.headers['set-cookie']
console.log(string)
That logs this:
[
'frontend=0uhi7fj03fro4f5n2at4ev1t77; expires=Fri, 11-Sep-2020 01:15:47 GMT; Max-Age=86400; path=/; domain=www.shoepalace.com; HttpOnly',
'__cf_bm=2d7abb53a603ff50426362615a2cba7c3bd0d58c-1599700547-1800-AVURmHeYokYbppItftnydR/xiAuOS75aQzUlJoxN/79VKKgYr9d7cx6DmgdSK4BbvjQ/pjC0+5lQXkLdn/QIdII=; path=/; expires=Thu, 10-Sep-20 01:45:47 GMT; domain=.shoepalace.com; HttpOnly; Secure; SameSite=None'
]
const pairs = string.split(';')
const obj = {}
pairs.forEach(pair => {
const split = pair.split('=')
const key = split[0]
const value = split[1]
obj[key] = value
})
console.log(obj.frontend)
像这样:
const cookies = [
'frontend=0uhi7fj03fro4f5n2at4ev1t77; expires=Fri, 11-Sep-2020 01:15:47 GMT; Max-Age=86400; path=/; domain=www.shoepalace.com; HttpOnly',
'__cf_bm=2d7abb53a603ff50426362615a2cba7c3bd0d58c-1599700547-1800-AVURmHeYokYbppItftnydR/xiAuOS75aQzUlJoxN/79VKKgYr9d7cx6DmgdSK4BbvjQ/pjC0+5lQXkLdn/QIdII=; path=/; expires=Thu, 10-Sep-20 01:45:47 GMT; domain=.shoepalace.com; HttpOnly; Secure; SameSite=None'
]
let frontendValue
cookies.forEach(cookie => {
const pairs = cookie.split(';')
pairs.forEach(pair => {
const split = pair.split('=')
const key = split[0]
if (key === 'frontend') {
frontendValue = split[1]
}
})
})
console.log(frontendValue)
- 我们在每一个之后将字符串分割成一个数组;
- 我们创建一个空的object/dictionary/map
- 遍历我们得到的所有 key-value 对
- 再次分裂=
- 读取键和return前端的值