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

Unable to receive Cookie in HttpServletRequest contain JSON Format value

本文关键字:格式 JSON Cookie 包含 HttpServletRequest      更新时间:2023-09-26

我已经通过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=/";
    

在HttpServletRequest请求对象的服务器端,我能够得到"测试"cookie,但不是"项目"cookie。当我从"项目"cookie中删除JSON值,只是添加一个虚拟字符串值,然后我能够在请求中获得"项目"cookie。这意味着HttpServletRequest有问题,无法接收JSON值cookie。

是否有解决方案接收cookie(包含JSON格式的值)在HttpServletRequest对象

我认为问题不在你的服务器端!如果您可以通过名称正确地从HttpServletRequest对象检索cookie,那么您的服务器代码是好的。

问题应该是您的JavaScript调用在请求提交之前没有返回有效的输出。如果你的JS访问JSON.stringify()对象的函数在你的文档,然后itemsJSON var不收集/不可用在你的浏览器之前,你的HTTP请求通过电线发送,因此cookie根本没有创建和附加到你的请求。

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