背景:

通常系统中用户登录之后会保存用户信息到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('服务器发生错误!');
				    }
				});
			}