ssm跨域请求导致服务端sessionid不一致

RUA好多鱼~ 2018-04-03 12:35:22
目前开发阶段,前后端分离开发,前后端不在同一个服务器上,通过cors设置了跨域之后,导致客户端不保存session id,客户端每次请求的时候后端获取的都是一个新的session,导致我没有办法使用session中存储的用户信息等数据,这个应该怎么解决,有什么简单的办法么,因为后期项目上线的时候还是要部署在同一个云服务器上,应该就不会有这种问题,但是现在开发阶段怎么解决呢
...全文
767 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
RUA好多鱼~ 2018-04-04
  • 打赏
  • 举报
回复
感谢大家提供的思路!!!
RUA好多鱼~ 2018-04-04
  • 打赏
  • 举报
回复
引用 12 楼 yjsl__ 的回复:
前端vue axios.defaults.withCredentials=true; 后端springMVC @CrossOrigin
是的,我昨天也是这么解决的,前端用的angularJS,一开始是在局部的ajax中加了withCredentials=true;这个参数,但是并没有什么卵用,后来加了个类似你这样的全局的配置就可以了!
m0_37404866 2018-04-04
  • 打赏
  • 举报
回复
感谢大家提供的思路!!!
yjsl__ 2018-04-03
  • 打赏
  • 举报
回复
前端vue axios.defaults.withCredentials=true; 后端springMVC @CrossOrigin
_小_小_ 2018-04-03
  • 打赏
  • 举报
回复
2楼 +1 都前后端分离了还用什么session 存东西. redis 或者 其它 缓存 就是了.
maradona1984 2018-04-03
  • 打赏
  • 举报
回复
引用 9 楼 shw717383130 的回复:
[quote=引用 8 楼 maradona1984 的回复:] sessionid会放在cookie中,cookie对不同的域是隔离的 开发时尽量模拟生产场景,可以搞个反向代理把域统一,最简单的方式,也不需要额外编码
在我的服务器上部署一个nginx可以达到这种统一域的效果么[/quote] 在前端的机器上部署,一个映射到他的服务,一个映射到你的服务,根据contextPath来
RUA好多鱼~ 2018-04-03
  • 打赏
  • 举报
回复
引用 8 楼 maradona1984 的回复:
sessionid会放在cookie中,cookie对不同的域是隔离的 开发时尽量模拟生产场景,可以搞个反向代理把域统一,最简单的方式,也不需要额外编码
在我的服务器上部署一个nginx可以达到这种统一域的效果么
maradona1984 2018-04-03
  • 打赏
  • 举报
回复
sessionid会放在cookie中,cookie对不同的域是隔离的 开发时尽量模拟生产场景,可以搞个反向代理把域统一,最简单的方式,也不需要额外编码
RUA好多鱼~ 2018-04-03
  • 打赏
  • 举报
回复
引用 6 楼 u011594442 的回复:
[quote=引用 5 楼 shw717383130 的回复:] [quote=引用 4 楼 u011594442 的回复:] [quote=引用 3 楼 shw717383130 的回复:] [quote=引用 1 楼 u011594442 的回复:] 跨域不会使你的session id变化,你f12看看请求有没有提示跨域问题
情况是这样的,开始的时候,我把登录的url地址给了前端,是会报跨域错误的,然后我写了个Cors过滤器,这样就不会报错了。但是问题就是,我在自己项目中放一个jsp,从我自己的jsp页面上去登录,后台获取的session是同一个session,但是在前端那台电脑上,从前端的html页面上发请求过来,我获取到的session就不是同一个了,存到session的信息就没有了[/quote] 。。。你浏览器都换了SESSION肯定变了啊,就是你自己电脑哪火狐和谷歌登录那也是两个session啊[/quote] 就是说,前端在他自己的电脑上,用同一个浏览器,登录我的服务端,每次发请求的session不一致了[/quote] 同一浏览器多次访问,SESSION ID每次都不同应该还是跨域问题[/quote] 是的,没找到什么简单的办法,保证session一致,正在学习改用token的方式
Sunyiban 2018-04-03
  • 打赏
  • 举报
回复
引用 5 楼 shw717383130 的回复:
[quote=引用 4 楼 u011594442 的回复:] [quote=引用 3 楼 shw717383130 的回复:] [quote=引用 1 楼 u011594442 的回复:] 跨域不会使你的session id变化,你f12看看请求有没有提示跨域问题
情况是这样的,开始的时候,我把登录的url地址给了前端,是会报跨域错误的,然后我写了个Cors过滤器,这样就不会报错了。但是问题就是,我在自己项目中放一个jsp,从我自己的jsp页面上去登录,后台获取的session是同一个session,但是在前端那台电脑上,从前端的html页面上发请求过来,我获取到的session就不是同一个了,存到session的信息就没有了[/quote] 。。。你浏览器都换了SESSION肯定变了啊,就是你自己电脑哪火狐和谷歌登录那也是两个session啊[/quote] 就是说,前端在他自己的电脑上,用同一个浏览器,登录我的服务端,每次发请求的session不一致了[/quote] 同一浏览器多次访问,SESSION ID每次都不同应该还是跨域问题
RUA好多鱼~ 2018-04-03
  • 打赏
  • 举报
回复
引用 4 楼 u011594442 的回复:
[quote=引用 3 楼 shw717383130 的回复:] [quote=引用 1 楼 u011594442 的回复:] 跨域不会使你的session id变化,你f12看看请求有没有提示跨域问题
情况是这样的,开始的时候,我把登录的url地址给了前端,是会报跨域错误的,然后我写了个Cors过滤器,这样就不会报错了。但是问题就是,我在自己项目中放一个jsp,从我自己的jsp页面上去登录,后台获取的session是同一个session,但是在前端那台电脑上,从前端的html页面上发请求过来,我获取到的session就不是同一个了,存到session的信息就没有了[/quote] 。。。你浏览器都换了SESSION肯定变了啊,就是你自己电脑哪火狐和谷歌登录那也是两个session啊[/quote] 就是说,前端在他自己的电脑上,用同一个浏览器,登录我的服务端,每次发请求的session不一致了
Sunyiban 2018-04-03
  • 打赏
  • 举报
回复
引用 3 楼 shw717383130 的回复:
[quote=引用 1 楼 u011594442 的回复:] 跨域不会使你的session id变化,你f12看看请求有没有提示跨域问题
情况是这样的,开始的时候,我把登录的url地址给了前端,是会报跨域错误的,然后我写了个Cors过滤器,这样就不会报错了。但是问题就是,我在自己项目中放一个jsp,从我自己的jsp页面上去登录,后台获取的session是同一个session,但是在前端那台电脑上,从前端的html页面上发请求过来,我获取到的session就不是同一个了,存到session的信息就没有了[/quote] 。。。你浏览器都换了SESSION肯定变了啊,就是你自己电脑哪火狐和谷歌登录那也是两个session啊
RUA好多鱼~ 2018-04-03
  • 打赏
  • 举报
回复
引用 1 楼 u011594442 的回复:
跨域不会使你的session id变化,你f12看看请求有没有提示跨域问题
情况是这样的,开始的时候,我把登录的url地址给了前端,是会报跨域错误的,然后我写了个Cors过滤器,这样就不会报错了。但是问题就是,我在自己项目中放一个jsp,从我自己的jsp页面上去登录,后台获取的session是同一个session,但是在前端那台电脑上,从前端的html页面上发请求过来,我获取到的session就不是同一个了,存到session的信息就没有了
X元素 2018-04-03
  • 打赏
  • 举报
回复
采用token认证机制,前端获取一次用户信息后,缓存用来交换用户信息的凭证,拿着这个凭证去请求后端各个接口。
Sunyiban 2018-04-03
  • 打赏
  • 举报
回复
跨域不会使你的session id变化,你f12看看请求有没有提示跨域问题

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧