2 y1725126387 Y1725126387 于 2015.06.05 14:40 提问

ajax提交请求在后台controller里取不到session中值 10C

ajax提交请求在后台controller里request.getSession().getAttribute("user");取不到值
在其他controller里却可以取到,急求解决办法
function doSubmit(){
if (Verification() == false) {
return;
}

$.ajax({

    url:"/trips/doCreate",
    async: false,
    data:$("#doCreate").serialize(),
    type: "POST",
    success: function(data){    
        alert("执行到了");
        $("#myModal").modal("show");                  
    },
    error: function(e) { 
        alert(e); 
    } 
});

};
这是我的ajax方法

4个回答

LSL1618
LSL1618   2015.06.05 14:50

首先在此之前你必须要session.setAttribute("user", user);然后在你session.getAttribute("user")时要保证session对象没过期,session中绑定的参数还存在;如果要获取ajax发送的数据,用request.getParmeter(paramName)方法。

LSL1618
LSL1618 回复Y1725126387: 要不你试试去掉false?
2 年多之前 回复
Y1725126387
Y1725126387 那怎么办啊,我在上面加了request.getSession(false);这句话了啊
2 年多之前 回复
LSL1618
LSL1618 回复Y1725126387: 这不,原因不就出来了。session被更新了,你绑定user对象的session和你获取user对象的session不是同一个,自然获取不到。
2 年多之前 回复
Y1725126387
Y1725126387 session的Id是不一样的一个是1bf80gz4itkw1d6g4rosbqbq6一个是1i6h00knscci31uck53ma5bdx7
2 年多之前 回复
LSL1618
LSL1618 回复Y1725126387: 嗯,是的。你试试把session和user对象打印到控制台,和其他controller对比一下。
2 年多之前 回复
Y1725126387
Y1725126387 request.getSession(false);加上这句话不就是不会更新吗
2 年多之前 回复
LSL1618
LSL1618 回复Y1725126387: 要么session过期或被更新,要么就是没登录。
2 年多之前 回复
Y1725126387
Y1725126387 存了啊,获取当前登录人的信息,session没有过期啊
2 年多之前 回复
u010696144
u010696144   2015.06.05 14:53

在其他controller里却可以取到???楼主你的意思是同一个controller中的不同方法吧?如果不是的话,你的异步请求的url是不是该改成你说的这个取不到的controller的url

Y1725126387
Y1725126387 url肯定是对的啊,不然怎么会跳到那个controller里面
2 年多之前 回复
Y1725126387
Y1725126387 url肯定是对的啊,不然怎么会跳到那个controller里面
2 年多之前 回复
qq_16168871
qq_16168871   2015.06.05 15:12

一楼的方法你没有试成功吗?你可以打印试一试,或者调试一下。

baidu_37025938
baidu_37025938   2016.12.13 14:39

request.getSession(false); 和他没关系吧。我觉得是ajax的请求和普通请求的不同的原因。你解决了吗

Csdn user default icon
上传中...
上传图片
插入图片