跳坑经过
-
前面的界面和后端编写很顺利
-
到了session保持这里出现了问题,和网上的教程一样,但是为什么我的session没办法传递变量呢
-
起初一直怀疑是我的后端配置少了什么东西,问群里大佬,各种百度,发现网上的demo如果不结合前端,独立运行都是可以实现的
-
经过2天的奋斗,发现了redis(ps:我的session是放到redis中的)中每次请求都会生成一次session
-
然后我使用jmeter,模拟请求并保存cookie,神奇的发现什么问题都没有,redis正常了,session的传递也正常了
-
到了这里定位到了问题在于cookie的传递(本地没有存储cookie)
-
百度如何跨域请求传递cookie,引入axios时,加上一句代码
import axios from 'axios' axios.defaults.withCredentials = true
-
问题解决了,但是我用的是localhost(如果项目都布在一台机器的话,已经可以实现了)
-
旁边的大佬告诉我,如果是不同域名的话,还是会有问题,换成ip访问果然又获取不到session
-
大佬给的思路,后端读取加密的session ->>传递给前端,前端接收之后存到Local Storage 或者 Sission Storage中,继续去百度后端如何读取session,解决之后再来更新
后续补充
- 前面说到用sessionstorage存储session,很长一段时间确实没什么问题,直到我往session中放了一个变量之后,开始出现问题,有时候还是会生成一个新的session,导致获取不到里面的变量
- 目前我是在登录的时候手动设置set-cookie和过期时间,基本解决了问题,但是没明白原理,有路过的大佬可以指点一下