首页 > 解决方案 > 如何在 Js Cookies 中存储长字符串?

问题描述

嗨,我正在使用JsCookies,它运行良好,但我遇到了问题

每当我在 cookie 中存储一个短字符串时,它都可以正常工作,但缺点是我无法在 cookie 中存储长字符串

例如

这工作正常=Cookies.set('Coo', 'string', { expires: 1 })

但是当我尝试存储字符串化的 JSON 数据(大字符串)时遇到问题

Cookies.set('foo', JSON.stringify(result))

请帮忙

标签: javascriptcookiesjs-cookie

解决方案


不应使用 Cookie 来存储大量数据。它们应该用于诸如用户授权和配置选项之类的东西(它们加在一起不会构成太多的有效负载)。当每个请求的数据都与服务器上的客户端相关时,使用 cookie。

cookie 中的大负载不应该随每个请求一起发送;这将是带宽密集型和不必要的。相反,要么:

  • 如果服务器不需要这些信息,而您只是将其用于客户端存储,请改用本地存储
  • 如果服务器确实需要该信息,则将数据发送到服务器一次(或者,至少在单独的请求中将其发送到服务器,而不是在 cookie 中) - 例如通过XHR
  • 如果服务器将拥有信息并且客户端需要它,请以其他方式将数据发送给客户端,而不是将其捆绑在 cookie 中。例如,您可以通过将数据嵌入到发送给客户端的 HTML 响应中来发送数据,或者让客户端向服务器发出网络请求,并让服务器以 JSON 格式的数据进行响应。

推荐阅读