Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法接收HttpServletRequest中包含JSON格式值的Cookie_Javascript_Java_Json_Servlets - Fatal编程技术网

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

Javascript 无法接收HttpServletRequest中包含JSON格式值的Cookie,javascript,java,json,servlets,Javascript,Java,Json,Servlets,我通过Javascript添加了两个cookie 试验 document.cookie = "test=testCookie; expires=Fri, 16 Oct 2015 22:24:05 GMT; path=/"; 实际数据 document.cookie = "item="+JSON.stringify(itemsJSON)+"; expires=Fri, 16 Oct 2015 22:24:05 GMT; path=/"; 在HttpServletRequest请求对象的服务

我通过Javascript添加了两个cookie

  • 试验

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

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


    是否有任何解决方案可以在HttpServletRequest对象中接收Cookie(包含JSON格式的值)。我认为问题不在服务器端!如果您可以从
    HttpServletRequest
    对象按名称正确检索cookie,那么您的服务器代码就可以了

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


    我会在您首选的浏览器中使用JS调试器。Chrome dev工具或Mozilla Web Developer插件应该有助于在
    send

    之前检查var的值,我建议将json转换为Base64,然后在服务器端对其进行解码。我已经完成了调试。一切正常。浏览器也显示cookies。在浏览器cookies中,有一个带有JSON值的项目cookie,但我无法在服务器端获取该cookies。您的项目和cookies的大小如何?所有cookie的大小不应超过4093字节。这意味着您可以有一个4093字节的cookie,或两个2045字节的cookie。。。