使用 Javascript 设置 Cookie 并清理值

Set Cookie with Javascript and sanitize value

本文关键字:Cookie Javascript 设置 使用      更新时间:2023-09-26

我需要用javascript设置一个cookie,我用以下命令来做这件事:

document.cookie = name+"="+value;

我的问题是value是一个字符串,可以包含任何 unicode 字符。

是否有自动替换特殊字符(如;)的功能 - 如果没有,禁止哪些字符?

像"encodeURIComponent()"-Get-Parameters函数这样的东西将是完美的

你应该使用 window.escape .

escape() 方法将特殊字符(任何不是常规文本或数字的字符)转换为十六进制字符,这对于设置 cookie 的值尤其必要。在 GET 请求或 AJAX GET/POST 请求的 URL 中传递 name=值对时也很有用。

它也有window.unescape对应物。

更新。在转义之前使用 base64 编码/解码可能是有意义的,以免受到 window.encode 的 unicode 字符消耗的影响。

为什么不使用强大的 cookie 库来处理 cookie?

$.cookie('key', value, { expires: 365 });

浏览器将 Cookie 限制为 4 kB。 如果需要在客户端上存储超过 4 kB,则应使用本地存储。