如何在JS中记录Cookie的特定部分

问题描述

我有一个响应标头set-cookie,其值为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)

  1. 我们在每个字符串之后将字符串拆分为一个数组;
  2. 我们创建一个空的对象/字典/地图
  3. 遍历我们获得的所有键值对
  4. 再次在=
  5. 上分割
  6. 读取密钥并返回前端的值

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...