背景:
通常系统中用户登录之后会保存用户信息到session,查询个人当前登录用户所带信息时,直接在session中获取当前登录用户,然后通过sql 的where条件筛选。
但是如果大量用户的信息存到session中会拖慢服务器的效率,甚至会宕机。
所以利用缓存Redis 代替 session 保存用户信息,用sessionId做为key,用户id作为value保存到redis
踩坑:前后端分离系统进行跨域请求时session并不共享,会导致sessionId不一致的情况
首先处理跨域问题
springboot 有处理跨域的注解@CrossOrigin
这样已经可以处理跨域请求,但session并不共享
注解修改如下:
@CrossOrigin(allowCredentials="true",allowedHeaders="*")
同时前端js ajax部分加入:
xhrFields:{
withCredentials:true
},
function ajaxtest(){
var url = "http://10.11.64.198:8888/t";
$.ajax({
url: url,
type: 'POST',
async:true,
xhrFields:{
withCredentials:true
},
success: function(respon){
},
error: function(){
alert('服务器发生错误!');
}
});
}