【发布时间】:2015-04-22 21:19:52
【问题描述】:
我正在尝试在 PHP 和 Javascript 之间工作,读取和写入包含我在 JS 和 PHP 中读入数组的 json 值的相同 cookie。
如果我在我的 php 数组中保存使用 json_encode() 的 cookie,我发现生成的 cookie 的内容都已编码,就像 url 编码一样。
问题在于,当我尝试读取该 cookie 并使用
解码 JSON 时var existing_array = readCookie('cookie_name');
JSON.parse(existing_array)
我收到一个 javascript 错误(例如 Uncaught SyntaxError: Unexpected token %)
如果我使用基于浏览器的 cookie 阅读器,我可以看到该数组在通过 javascript 保存时很容易读取: ["644","636"].
但是,当通过 json_encode() 函数在 PHP 中创建数组时,结果内容最终会类似于:%5B%22644%22%5D。
如果没有发生这种编码,我相信 JS 函数可以对其进行解码。有没有其他人经历过这个?我在 Windows 8 和最新的 Chrome 浏览器上使用 PHP 5.5。
【问题讨论】:
-
不能用JS解码吗?
decodeURI( readCookie('...') ) -
cookie 中的内容是 URL 编码的。如果你想正确地
JSON.parse它,请先解码它。
标签: javascript php json