问题描述:
使用Ajax, Controller 传回来 JSON 字符串(待处理的信息)
在 Ajax 中实现页面跳转
window.location.href="/jsp/index.jsp";
可是有一个问题没有办法解决 把Ajax接收到Controller后台处理结果的值,传到新跳转的页面。
问了大神,告诉我用 Local Storage (解决了 Session 关闭即消失,cookie 易出错的问题)
使用方法:
controller
// 登录成功
map.put("code",1);
map.put("msg","登录成功"); map.put("nickname",user.getNickname());
String result = new JSONObject(map).toString();
return result;
ajax
$.ajax({
async: false,//同步,待请求完毕后再执行后面的代码
type: "POST",
url: '/user/login.action',
contentType: "application/x-www-form-urlencoded; charset=utf-8",
data: $("#loginForm").serialize(),
dataType: "json",
success: function (data) {
if(data.code==0) {
alert(data.msg);
} else {
var nickname = data.nickname;
localStorage.setItem("nickname",nikename||"");
window.location.href="/jsp/index.jsp";
}
},
error: function () {
alert("数据获取失败")
}
})
jsp
<script>
var nickname = localStorage.getItem("nickname");
alert(nickname)
</script> 总结:
前端页面存数据使用localStorage和sessionStorage,不使用cookies。就是为了方便,直接set和get方法就好了。
sessionStorage:是浏览器一关闭就数据丢失
localStorage:存储的数据天地同寿
localStorage.setItem(k,v);
v = localStorage.getItem(k);
sessionStorage:是浏览器一关闭就数据丢失
localStorage:存储的数据天地同寿
localStorage.setItem(k,v);
v = localStorage.getItem(k);