我在服务器端看到一些奇怪的cookie行为,并想了解原因。
在客户端:
document.cookie = 'test_cookie=' + '[AB]cd|ef-gh[IJ]' + '; path=/;';
document.cookie = 'test_cookie2=' + 'cd|ef-gh' + '; path=/;';
在服务器上:
headers = httpServletRequest.getHeaders()
// iterate and print headers
cookies = httpServletRequest.getCookies();
// iterate and print headers
输出:
// Both are there on the header, so tomcat doesn't block it:
...
header: cookie: test_cookie=[AB]cd|ef-gh[IJ]; test_cookie2=cd|ef-gh
// Only one shows up from getCookies()
...
cookie: test_cookie2=cd|ef-gh
// no test_cookie ???
为什么我无法看到test_cookie2? 在我将它设置在客户端之前,我可以进行uri-encode,但我认为' ['和']'允许cookie字符?
有没有更正确的方法来设置它?
答案 0 :(得分:0)
以下是在前端正确设置cookie的方法:
ln
不是包含特殊字符的cookie值的双引号。