2012-04-26 60 views
0

瀏覽器發送一個cookie,如fbm_123456=base_domain=.test.com;(它是由Facebook Javascript SDK設置的cookie),這是我從FireBug看到的。從HttpServletRequest獲取損壞的cookie值

但是,當我在服務器端讀取它時,我的cookie.getValue()只返回base_domain作爲值,我的意思是=.test.com部分丟失。所有其他的cookie參數都是null(沒關係)。

怎麼可能?也許我錯過了一些cookie,這是一種特殊的cookie?我如何獲得原始cookie值?

回答

1

該cookie無效。 cookie名稱或值中不允許使用'='字符。如果您使用的是Tomcat,然後在以後的版本中,你可以使用下面的系統屬性,以允許讀取Cookie無效:

-Dorg.apache.tomcat.util.http.ServerCookie.ALLOW_EQUALS_IN_VALUE=true 

正確的cookie值應該是:

fbm_123456="base_domain=.test.com" 

(注意引號)

+0

謝謝!這不是一個好消息:(我不能改變cookie格式(它的FB cookie),並且不能訪問系統屬性(它是一個插件,而不是最終的應用程序)是否有任何其他方式來讀取原始cookie值? – 2012-04-26 14:14:59

+0

愚蠢的問題,我可以讀爲.getHeader – 2012-04-26 14:22:03