javaweb里jquery请求不能写入cookie,为啥

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javaweb里jquery请求不能写入cookie,为啥相关的知识,希望对你有一定的参考价值。

我一个页面中有一个按钮是发送jquery在对应的action内获取response,然后添加cookie。为什么cookie写不进去?我之前是有一个相同主键的cookie已经写出去了,用的是跳转页面,为什么啊?
Cookie[] cookies=ServletActionContext.getRequest().getCookies();
String cookiecart=null;
for(Cookie c:cookies)
if(c.getName().equals("mycart"))
cookiecart=c.getValue();
System.out.println(URLDecoder.decode(cookiecart,"UTF-8"));

break;

两个action都是这段代码,为什么同样一段代码只有在曾经写出过cookie的action才能获取cookie?

参考技术A 你是怎么添加cookie的?jquery操作cookie有简单方法,建议看看,正常是可以写的,建议alert看一看。。
----------------
好奇特,cookie应该是客户端的概念,在服务器端使用cookie比较少见啊。。。而且cookie应该是有作用域的,你看看这有没有问题。。
你两次访问的是不同Action,就是不同请求了。。
参考技术B 你用jquery里面的cookie插件的话,就需要引入jquery.cookie.js文件。。
使用方法:
$.cookie("key","value");就能够把值为value,键为"key"的cookie中。。
取出来的话,只需要是$.cookie("key")就OK了。。
有什么问题吗追问

请看看我的补充问题,谢谢

追答

不可能啊。。或许是你之前做过某些东西出错了。

你试试把所有cookie输出来看看。。

我的测试代码见附件。。

本回答被提问者采纳
参考技术C 我是来打酱油那奖励的 参考技术D 可以的,你的方法用的有问题追问

我刚才又试了一下,确实可以的不过现在是这种情况,我有两个action都去获取cookie,但是只有写cookie的那个action才能获取到完整cookies,而另外一个单单用来测试获取cookie的测试cation却不能获取到,(两段获取cookie的代码完全相同),都快抓狂了

浅析python中cookie写入和读取

参考技术A 通常情况下,一个请求对于cookie有不同的操作方式,如cookie写入和cookie读取2种最基本的方式.

cookie的读取
url = self.get_response_url()+"&callback=jQuery21008240514814031887_1508666806688&_=1508666806689"
cookie = requests.get(url).cookies
return cookie
这里的cookie的读取是通过url请求返回cookie得到cookiejar的值

cookie写入
cookie = requests.utils.dict_from_cookiejar(self.get_cookie())
op_json = OperetionJson()
op_json.write_data(cookie)
这里的cookie的写入是通过获取后,在cookiejar的dict中获取到cookie,然后将cookie写入到json中,即可实现cookie写入的功能.

以上是关于javaweb里jquery请求不能写入cookie,为啥的主要内容,如果未能解决你的问题,请参考以下文章

JavaWeb Cookie详解

浅析python中cookie写入和读取

[JavaWeb]CookieSession 和 Filter

跨域请求response中有Set-cookie,但是Cookie无法写入浏览器问题

[JavaWeb]CookieSession 和 Filter 过滤器

jquery.cookie() 方法的使用(读取写入删除)