为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 Javascript 中存储 http cookie

如何在 Javascript 中存储 http cookie

紫衣仙女 2023-07-29 15:06:05
我想将 cookie 的子集存储在相当于关联数组的 Javascript(非 JQuery)中(我知道 Javascript 没有)。在我熟悉的大多数语言中,这很简单,大致如下:-cookiepart = cookieset.split('=');cookie{cookiepart[0]} = cookiepart[1];这是一个简单的情况:-print(cookie{'session'});我能够实现任何目标的唯一方法是对密钥进行硬编码,即:-print(cookie.session);这将需要使用 switch 语句,如下所示:-switch(cookiepart[0]) {  case 'session':    cookie.session = cookiepart[1];    break;  case 'cookie2':    cookie.cookie2 = cookiepart[1];    break;等等,等等填充让我觉得特别不优雅的数组。有没有更好的办法?感谢@DigitalDrifter,这几乎可以工作了——但还不够。实际的 cookie 是:-redirect=1; sessionid=110430我的代码是:-let cookie = {};let cookies = document.cookie.split(';');cookies.forEach(c => {        let [k, v] = c.split('=');        Object.assign(cookie, {[k]: v});});alert("redirect : "+cookie.redirect);alert("sessionid : "+cookie.sessionid);cookie.redirect工作正常并显示 1但cookie.sessionid显示未定义。为什么会这样呢?
查看完整描述

3 回答

?
阿晨1998

TA贡献2037条经验 获得超6个赞

我认为你最好{}在这里使用对象而不是数组。


let cookie = 'redirect=1; sessionid=110430';

let obj = {};


cookie.split(';').forEach(c => {

  let [k, v] = c.split('=').map(p => p.trim());

  Object.assign(obj, { [k]: v });

});



console.log(obj);


// outputs

// {

// "redirect": "1",

// "sessionid": "110430"

// }


console.log(obj.sessionid);


// outputs

// 110430


查看完整回答
反对 回复 2023-07-29
?
ITMISS

TA贡献1871条经验 获得超8个赞

对于任何发现这个问题的人,这就是我解析和保存 http cookie 的方式:-


let cookie = {};

let cookies = document.cookie.split(';');

cookies.forEach(c => {

        let [k, v] = c.split('=').map(p => p.trim());

        Object.assign(cookie, {[k]: v});

});


查看完整回答
反对 回复 2023-07-29
?
慕侠2389804

TA贡献1719条经验 获得超6个赞

您可以使用 JSON,然后对其进行解析/字符串化。另外,我在下面使用本地存储。


我创建了两个函数,这样您就可以将它们重复用于您想要的任何存储。


function getStorage(key){

  str = localStorage.getItem(key) || "{}"

  return JSON.parse(str)

}


function setStorage(key, values){

   localStorage.setItem(key,JSON.stringify(values))

}


str = getStorage("session")


str["test"] = 1


setStorage("session", str)


sessions = getStorage("session")


console.log(sessions["test"])


查看完整回答
反对 回复 2023-07-29
  • 3 回答
  • 0 关注
  • 122 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信