关于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就直接创建了。

相关推荐
lvchaoq4 小时前
解决组件不能远程搜索的问题
前端·bug
Vanranrr6 小时前
一个由非虚函数导致的隐藏Bug:窗口显示异常问题排查与解决
开发语言·bug
AllinGold7 小时前
vscode等IDE使用ssh远程连接云服务器ECS,连接不上的通常问题
bug
测试人社区—84161 天前
Postman API测试指南
人工智能·git·测试工具·自动化·bug·postman
万粉变现经纪人1 天前
如何解决 pip install 网络报错 403 Forbidden(访问被阻止)问题
数据库·python·pycharm·beautifulsoup·bug·pandas·pip
测试人社区—84161 天前
Appium移动自动化测试:从入门到精通实战
人工智能·安全·appium·自动化·bug·postman
Wokoo71 天前
软件测试分类与BUG管理
功能测试·单元测试·bug·集成测试·压力测试·ab测试
ChrisitineTX1 天前
RocketMQ 消费端卡死?深扒 Rebalance(重平衡)机制在“网络分区”下的致命 Bug
网络·bug·rocketmq
无名小卒~≯2 天前
mybatis重复查询导致内存地址相同bug
bug·mybatis
测试人社区—84162 天前
Mocking与Stubbing在单元测试中的正确使用
人工智能·git·单元测试·自动化·bug·postman