【发布时间】:2012-04-30 11:12:48
【问题描述】:
我正在尝试在 Python 脚本中编码一个对象并将其设置为 cookie,以便我可以使用客户端 JavaScript 读取它。
我尝试这样做的每一种方式都遇到了问题。通常,cookie 的格式会导致 JSON.parse() 中断。
我当前的脚本:
cookie = Cookie.SimpleCookie()
data = {"name": "Janet", "if_nasty": "Ms. Jackson"}
cookie['test'] = json.dumps(data)
self.response.headers.add_header("Set-Cookie", cookie.output(header=''))
...导致
test="{\"name\": \"janet\"\054 \"if_nasty\": \"Ms. Jackson\"}"
在客户端。
我真的不想引入一个 hack-y 解决方案来替换出现的逗号实例。任何想法如何使用 Python 传递复杂的数据结构(通过设置 和 读取 cookie)?
【问题讨论】:
-
在读取请求中的 cookie 时,究竟会得到什么? cookie 应该以与其编码相同的方式进行解码;如果没有,则 cookie 库中的某个地方存在错误。
-
当我在服务器端读取值时,我得到了正确的值。但是当它存储在客户端时,它会以一种奇怪的格式进行转义。
-
转义是它通过 HTTP 标头所必需的。为什么它在客户端上存储的格式很重要?
-
这很重要,因为我想使用 json2.js 或 JSON.parse(string) 的本机浏览器实现将其解码为 JSON 对象。现在我通过用“|”替换逗号来解决它字符,但我更愿意找到一个更强大的解决方案。
-
哇,使用 cookie 在客户端和服务器之间传递数据有点……奇怪。你想达到什么目的?
标签: python json google-app-engine webapp2