分析Ajax跨域无法共享session的问题
1、什么是session
Session :在网络应用中,称为“会话控制”。Session 对象存储特定用户会话所需的属性及配置信息(比如:用户登录状态,用户id…),然后可以在服务端进行随取随用。
那既然session是在服务端使用的,前端又不要用,那为什么说Ajax请求跨域需要共享session呢?
2、先解释一下为何使用ajax进行跨域访问controller层时所定义的session无法共享
这个就涉及到了Cookie和Session、SessionID的那些事儿了。
<Cookie和Session、SessionID的关系>
sessionid 是一个会话的 key,浏览器第一次访问服务器会在服务器端生成一个 session,每个session都会有一个 sessionID 和它对应,并返回给浏览器,这个 sessionID 会被保存在浏览器的会话 cookie 中。tomcat 生成的 sessionID 叫做 jsessionID。
- sessionID 在访问服务器 HttpServletRequest 的 getSession(true) 的时候创建。
- 简单来说,cookie 和session的区别是:cookie数据保存在客户端,session数据保存在服务器端。