关于session的不断变化问题

今天在帮同学解决一个小问题,差点阴沟翻船。

问题再现:他从github上拉了一个项目下来跑,结果发生跑不通问题出现在验证码一直不对。

我一看项目源码,验证码生成后存储再session中了,等用户发送请求验证的时候sessionId变化了,导致通过session获取验证码是一个null。

发现问题

经过各种测试发现sessionId每次请求进来都是生成一个新的。这个是问题所在

尝试解决

网上有方案说配置前端携带cookie: xhrFields: {withCredentials: true},后端再配置跨域可以解决问题,我实践过这种方案还是不行。

解决问题

后来发现后端的项目地址为localhost:8080,前端页面为http://127.0.0.1:5500/login.html。我把127.0.0.1改为localhost就解决了这个问题。127---\>>localhost或者localhost---->>127都会跨域。

原理解析

后来查资料发现确实是跨域的问题虽然localhost会被解析成127.0.0.1访问,但是还是会跨域,跨域你的域名 端口 协议变动了就是跨域。跨域让cookie无法被传递,sessionId是存储在cookie中的,所以后端每次都认为请求是新的请求没有sessionId就直接创建了。

相关推荐
Pan Zonghui2 天前
GitHub Bug反馈与修复全流程指南
github·bug
初圣魔门首席弟子2 天前
bug 2026.05.15(以前能运行的java springboot项目突然间不能运行后台数据了)
java·开发语言·bug
Desenberg3 天前
【Claude Code】因为中途修改配置路径导致Claude Code 插件安装失败
windows·bug
QuestLab3 天前
维护 Hermes Agent CN 过程中的碎碎念,以及从bug上得到的一点点启发
bug
java修仙传4 天前
Java 实习日记:一次 Excel 导入校验 Bug 的定位与数据更新逻辑优化
java·数据库·bug·excel·后端开发
当战神遇到编程4 天前
软件测试基础入门:从 BUG 到测试用例设计完整指南
测试用例·bug
Bear on Toilet6 天前
3. BUG篇
bug
编程探索者小陈6 天前
【测试】之BUG篇
bug
棋宣7 天前
uni-app编译到微信小程序中,父传子props首次传递数据不接收的bug
微信小程序·uni-app·bug
wqdian_com7 天前
华为手机浏览器的一个bug
服务器·华为·bug