无法在HttpServletRequest中接收Cookie包含JSON格式值

时间:2015-09-12 10:45:21

标签: javascript java json servlets

我已经通过Javascript添加了两个Cookie。

  1. 测试

    document.cookie = "test=testCookie; expires=Fri, 16 Oct 2015 22:24:05 GMT; path=/";
    
  2. 实际数据

    document.cookie = "item="+JSON.stringify(itemsJSON)+"; expires=Fri, 16 Oct 2015 22:24:05 GMT; path=/";
    
  3. 在HttpServletRequest请求对象的服务器端,我可以获得“test”cookie而不是“item”cookie。当我从“item”cookien中删除JSON值并只添加一个虚拟字符串值时,我可以在请求中获得“item”cookie。这意味着HttpServletRequest无法接收JSON值cookie存在问题。

    是否有任何解决方案可以在HttpServletRequest对象中接收cookie(包含JSON格式的值)。

1 个答案:

答案 0 :(得分:0)

我认为问题不在您的服务器端!如果您可以从HttpServletRequest对象中正确地检索cookie,那么您的服务器代码就可以了。

问题应该是您的JavaScript调用在请求提交之前未返回有效输出。如果您的JS可以访问您的文档上的JSON.stringify()对象的函数,那么在您的HTTP请求通过网络发送之前,您的浏览器中不会收集/不提供itemsJSON var,因此不会创建cookie并且附在您的请求上。

我会在您首选的浏览器中使用JS调试器。 Chrome开发工具或Mozilla Web开发人员插件应该有助于在send之前检查您的var的值。