2017-10-11 8 views
0

私は、サーバー側のクッキーで何らかの奇妙な動作を見ています。理由を理解したいと思います。サーバー上でCookieヘッダーでは利用できますが、getCookies()からは利用できません。

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できましたが、 '['と ']'にはクッキー文字が許可されていると思いましたか?

もっと正しい設定方法はありますか?

document.cookie = 'test_cookie="[AB]cd|ef-gh[IJ]"; path=/'; 

をされない特殊文字が含まれているクッキーの値を二重引用符:ここ

答えて

0

は、フロントエンドで正しくクッキーを設定する方法です。

関連する問題