根据浏览器的保护规则,跨域时候的SeeionId是不会被保存下来,即我们的每次Ajax请求都会是一个新的请求,都会产生新的SeesionId,后台自然不能根据前台传过来的SeesionId判断你是否处于登录状态。
我们可以对前台的Ajax以及后台进行相应的修改,就可以对上述问题进行完美解决:
前端Ajax请求
$.ajax({ |
Controller部分代码
"XXXX.do") (value= |
PS: withCredentials:默认情况下,跨源请求不提供凭据(cookie、HTTP认证及客户端SSL证明等)。通过将withCredentials属性设置为true,可以指定某个请求应该发送凭据。
如果服务器接收带凭据的请求,会用下面的HTTP头部来响应,Access-Control-Allow-Credentials: true。如果发送的是带凭据的请求,但服务器的相应中没有包含这个头部,那么浏览器就不会把相应内容交给Ajax(于是,responseText中将是空字符串,status的值为0,而且会调用onerror()事件处理程序)。
支持withCredentials属性的浏览器有Firefox 3.5+、Safari 4+和Chrome。IE10及更早版本都不支持。