【问题标题】:Modify a field within a cookie修改 cookie 中的字段
【发布时间】:2012-10-15 23:28:39
【问题描述】:

是否可以使用 javascript 编辑 cookie 中的字段? cookie 看起来像这样

cookie_session=[{"id":"1526","username":"test","email":"test@test.com"}]

例如,是否可以编辑字段用户名的值?

我正在尝试使用

document.cookie="Field=myValue"

但是当我使用它时,它会将 cookie 的整个值设置为 myValue 而不是其中的某个字段。

另外,是否可以解析用户名的值以便稍后将其用于 POST 请求?

【问题讨论】:

  • 为什么要提取请求的用户名,cookie 已经发送了?
  • 我希望能够读取 cookie 中某个字段的值。
  • 这不是我要找的。​​span>

标签: javascript cookies


【解决方案1】:

cookie 只是一个字符串。您将 javascript 对象存储在 cookie 中。为了修改对象的单个部分,您需要解码 JSON、编辑属性并将对象重新编码回字符串以将其存储在 cookie 中。

顺便说一句 - cookie 不是用来存储 javascript 对象的。如果您不需要服务器上的数据,那么最好使用本地/会话存储。有一些 jQuery 插件可以让这些机制以跨浏览器友好的方式工作。

编辑:可以在这里找到一个例子:Pure Javascript - store object in cookie

【讨论】:

  • 如何解析cookie中的某个字段?
  • 所以由于 cookie 只是一个字符串,它没有字段。现在,在您的情况下,该字符串恰好是表示 javascript 对象 (JSON) 的字符串。您必须首先将parse 的 JSON 重新转换为真正的 javascript 对象。此时,您可以更改对象的属性。然后您必须将stringify 对象重新转换为 JSON 并将其保存回 cookie。
  • 这听起来很难,不幸的是我对javascript了解不多。我不知道这是否可能,但我想做的是:当用户访问页面时,他的用户名仅存储在 cookie 中,我读取该 cookie 和用户名,将其用作变量以发送基于 POST 请求在他们的用户名上。这可能吗?
  • 您不需要了解 JavaScript 就可以理解对象和字符串之间的区别。另外,我希望您不要使用此用户名发生任何重要的事情,因为您的系统可能会被三年级学生入侵。您需要使用正确的身份验证查找...这超出了本文的范围。同时,对 JSON、字符串和对象进行研究。这是一个解释这一切的jsfiddle:jsfiddle.net/ryanwheale/RNMWs
猜你喜欢
  • 2014-10-03
  • 2021-01-18
  • 1970-01-01
  • 2020-05-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-05
相关资源
最近更新 更多