我已经创建了一个帮助对象来将JSON存储在URL哈希中。请参阅项目here on GitHub:
这对于在没有cookie的情况下持久保存页面设置非常有用。工作得很好,我喜欢它。
对这种方法有什么想法和反对意见?我读过安全性可能会。是否真的在新浏览器中使用json2.js或本机JSON对象时?
答案 0 :(得分:7)
rison似乎是一种更紧凑,更有效的方式。特别是因为JSON中使用的许多字符都不是URI安全的。
此外,将敏感信息(即大部分信息)包含在服务器和客户端之间来回的任何内容中很少是明智之举。这就是为什么大多数“会话”方案只在cookie中存储会话ID,而不是所有信息。在这种情况下,将ID添加到URL并不比使用cookie更难。事实上,这是在过去几天使用PHP进行会话的默认方式,而Cookie是一些浏览器的高级功能。
答案 1 :(得分:3)
您应该知道网址长度有限,并且在不同浏览器之间发生了变化: http://www.boutell.com/newfaq/misc/urllength.html
答案 2 :(得分:1)
你在哪个网址存储它? #fragment
或?query
?
如果是 查询 ... 不。
那些:
答案 3 :(得分:0)
如果要在单个浏览器中管理状态,并且不与其他用户或浏览器共享,则在localStorage中维护状态可能是更好的选择。诸如amplify.store之类的框架支持您将遇到的大多数浏览器(IE 5 +,Firefox 2 +,Safari 4 +,Chrome,Opera 10.5 +,iPhone 2 +,Android 2+):{ {3}}
它比cookie更容易使用,更强大,并且没有@Javier提到的潜在问题。
如果您确实需要跨浏览器(和/或用户)管理状态,那么网址是您最好的选择,在这种情况下我也会看到里昂。