因为服务器判断前端的请求是同一个session的依据是通过网页默认的一个sessionid的cookie判断的,如果存在跨域,cookie值传不过来,也就当下一个请求过来时服务端无法识别为同一个会话,会被当做一个新的会话处理,故找不到session原保存的值。
解决办法(CORS解决跨域)
CORS请求默认不发送Cookie和HTTP认证信息。若要发送Cookie,浏览器和服务端都要做设置,
首先解决跨域问题,如springboot在相应的controller里加上
@CrossOrigin
这个注解,
前端设置允许发送cookie
$.ajax({
url: url,
type: 'post',
data: JSON.stringify(obj),
//加上 xhrFields及crossDomain
xhrFields: {
withCredentials: true//允许带上cookies
},
crossDomain: true,
success:function(res){
},
error:function(){
}
});