ajax向java后台发送请求 后台接收不到Cookie的解决方法

ajax向java后台发送请求 后台接收不到Cookie的解决方法


大概的场景是这样的

ajax向后台提交数据,但是我的后台同时需要处理Cookie

然而,我这里后台却收不到,究其原因,原来是路径的问题

如我这里的路进,请求来源页面是Cookie就是在这个页面被创建,并且在浏览器中也可以看到该Cookie已经被创建


http://localhost:8080/LoveBN/useradmin/order?userid=1
ajax请求页面是



$.ajax({
			url : "../pay/start",
根据Cookie的官方文档,默认情况下,只向同一个应用共享Cookie


如以上地址 /LoveBN/useradmin/order 与 /LoveBN/pay/start  ,我们配合设置Cookie的共享路径来说明:

设置路径,在java后端是这样设置的(java后端是在Controller为 LoveBN/useradmin/order 里面设置的)

如下代码:

Cookie cookie = new Cookie("allorder",JSON.toJSONString(map.get("list")));
response.addCookie(cookie);
cookie.setPath("ssss");

下面我们开始简要的说明一些关于Cookie的路进问题:

1、如果我们设置不设置这个路径

那么默认情况下是同一应用,显然这里不是同一个应用了

2、如果我们设置


cookie.setPath("/");

表示根目录下的应用都共享,这个权限应该是最大的

3、我们如果设置


cookie.setPath("/LoveBN/useradmin/");
这个设置显然我们的 pay/start 是不能获得cookie的


4、我们如果设置

cookie.setPath("/LoveBN/pay/start");


这样设置,在我们的pay/start这个controller里面是可以获得我们创建的Cookie的


在我的场景中,我只需要设置上面的第二或第四就可以了


当然我们可以在  进行测试Cookie是否已经正确传入到后台


Cookie[] cookies = request.getCookies();
for(Cookie cookie : cookies){
	System.out.println(cookie.getName()+":"+cookie.getValue());
}



爆款云服务器s6 2核4G 低至0.46/天,具体规则查看活动详情Blog Img