【壮壮踩坑笔记2】

​ 今天诸事不宜,不停掉坑。

​ 刚刚完成了我的第一篇踩坑笔记,然后点了笔记里的链接,跳转后笔记1壮烈牺牲,呜呜,太惨了。

描述问题:

​ 在昨天的毕设项目开发中,我遇到了CROS跨域的bug,在edge控制台没能看到bug的描述,所以打开Chrome的控制台,成功看到问题描述:

Access to XMLHttpRequest at 'http://localhost:8081/author/queryAuthor?userId=root' 
from origin 'http://localhost:8080' has been blocked by CORS policy: 
Response to preflight request doesn't pass access control check: 
The value of the 'Access-Control-Allow-Origin' header in the response must not 
be the wildcard '*' when the request's credentials mode is 'include'. 
The credentials mode of requests initiated by the XMLHttpRequest is controlled by 
the withCredentials attribute.

发现问题根源:

axios.defaults.withCredentials = true;会导致后端设置Access-Control-Allow-Origin=* 不生效

删掉设置后,项目不报错了,超开心。

​ 晚上睡觉前,想起来

axios.defaults.withCredentials = true;是为了允许请求携带cookie

心里猛地一沉,有坑。

​ 今天早上对这个问题进行复测,发现确实不能删除,所以又开始寻找解决办法,参考博客链接1后,修改代码为:

response.setHeader("Access-Control-Allow-Origin", "http://127.0.0.1:8080");

问题解决,下一个坑,随之而来,

描述问题:

​ cookie又走丢了,验证码生成了,也存到session中了,但是当登录请求发出时,后台的session中取不到验证码,一直为空,验证失败

发现问题根源:

localhost和127.0.0.1不同源

这里参考了链接2

一通折腾后,最终处理结果是:在这里插入图片描述

去掉了拦截器中对response的一些设置;

在这里插入图片描述

这儿我又产生了一个新的疑问,为什么上面那里可以设置为 “*”,这个问题我还没有找到答案,有看到的大佬麻烦指导一下,谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值