cookie可用于Cookie标头但不是来自getCookies()?

时间:2017-10-11 19:16:46

标签: http cookies

我在服务器端看到一些奇怪的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字符?

有没有更正确的方法来设置它?

1 个答案:

答案 0 :(得分:0)

以下是在前端正确设置cookie的方法:

ln

不是包含特殊字符的cookie值的双引号。