跨域问题不一定真的是跨域了???

简介: 跨域问题不一定真的是跨域了???

文章背景

项目中大家总会遇到说跨域的问题,总是报500,可是大家明明都已经配置了跨域的选项,不论前端还是后台。这种看似很小的问题,却让你头疼不已。甚至会耽误最主要的功能,比如过有一个接口是统一登录,那么虽然不耽误之后的开发,但是项目运行起来,卡在这里,后续的流程进行就不会顺利,也影响体验,以至于整个项目在临近项目结点的时候,因完不成,而就此报废。那将得不偿失。

(正常跨域配置选项的我就不做讲述了,大家自行百度即可)

遇到的问题

配置跨域项,依然会有出现跨域或者请求失败的现象
情况一:

访问失败

上面这种情况的错误,是前台header请求头的参数,在后台没有接收或者是接收的方式写成了,解决办法就是让后台接收的 改成对应传递的参数名即可。
前台封装的拦截器中header配置

比如图中的Authorization是token字段,那么让后台也配置对应接收参数即可。
怎么看后台接收的是什么,步骤 > F12打开控制台 > Network >看发出的请求,然后左键点击>此时的header 里面就可以看到
请求配置

如果Access-Control-Allow-Headers:* 则让后台改动一下即可。
情况二:后台header配置

很是抱歉前台错误截图没有找到,大家就通过我的描述来对应一下吧

在情况一解决的情况下还会出现500的错,而Access-Control-Allow-Methods配置为*的时候,(其中的一种情况是,你的前台不加token就能请求成功,加了就失败的时候)这时的你则需要让后台帮你吧Access-Control-Allow-Methods改为接收具体的方法:如Access-Control-Allow-Methods:GET,PUST,....写上所有你能需要的即可。
修改后的后台header配置

备注:

浏览器的版本现在对通配符*的识别有些失败,估计以后会有优化吧。

其中有token验证的请求,使用通配符* ,如果在火狐浏览器中的话,会有更明显的显示(错误),就是先将我们的请求转变成option请求,来试探请求的接口。报错会让你连token都没传就失败了。
header配置的注意项

以上修改之后基本就解决了额外的情况。希望这篇文章能帮助大家填一填小坑。记得关注走一波,身为小白的我,以后会更加努力。

相关文章
|
小程序 前端开发
阻止小程序事件冒泡的三种方法
阻止小程序事件冒泡的三种方法
1642 0
|
存储 关系型数据库 MySQL
mysql8对gis的支持
mysql8对gis的支持
1015 0
|
9天前
|
数据采集 算法 机器人
具身智能:零基础入门睿尔曼机械臂(五)—— 手眼标定核心原理与数学求解
本文系统讲解手眼标定技术,涵盖Eye-in-Hand与Eye-to-Hand两种架构,深入推导AX=XB方程的数学原理与求解方法,结合实际应用场景和操作步骤,为机器人视觉开发者提供从理论到实践的完整指南。
122 9
|
4月前
|
Apache 开发工具 数据格式
OpenAI 重返开源!gpt-oss系列社区推理、微调实战教程到!
时隔N年,OpenAI开放模型权重啦!欢迎使用gpt-oss 系列,专为强大的推理、代理任务和多用途开发场景设计。
1434 0
|
6月前
|
机器学习/深度学习 数据采集 API
|
11月前
|
IDE Java 开发工具
@Transactional 你真的用对了吗?
在日常开发中,`@Transactional`注解常用于声明式事务管理,但其原理和使用不当可能引发问题。本文通过一个实际场景探讨了自调用方法时事务不生效的问题,并分析了潜在风险:数据不一致。为解决此问题,提供了三种方案:1) 将方法移动到其他服务类;2) 使用`AopContext.currentProxy()`获取代理对象;3) 通过`ApplicationContext`获取Bean。最终建议尽量避免自调用事务操作,确保数据一致性。
434 6
|
12月前
|
Java 开发者 Spring
理解和解决Spring框架中的事务自调用问题
事务自调用问题是由于 Spring AOP 代理机制引起的,当方法在同一个类内部自调用时,事务注解将失效。通过使用代理对象调用、将事务逻辑分离到不同类中或使用 AspectJ 模式,可以有效解决这一问题。理解和解决这一问题,对于保证 Spring 应用中的事务管理正确性至关重要。掌握这些技巧,可以提高开发效率和代码的健壮性。
892 13
CORS 报错的常见原因
【10月更文挑战第6天】
|
存储 缓存 负载均衡
一致性哈希:解决分布式难题的神奇密钥
一致哈希是一种特殊的哈希算法,用于分布式系统中实现数据的高效、均衡分布。它通过将节点和数据映射到一个虚拟环上,确保在节点增减时只需重定位少量数据,从而提供良好的负载均衡、高扩展性和容错性。相比传统取模方法,一致性哈希能显著减少数据迁移成本,广泛应用于分布式缓存、存储、数据库及微服务架构中,有效提升系统的稳定性和性能。
687 1
String、StringBuffer、StringBuilder的区别
这篇文章讨论了Java中String、StringBuffer和StringBuilder的区别。String是不可变的,每次操作都会产生新的对象,效率低且浪费内存。StringBuilder可以在原字符串基础上进行操作,不开辟额外内存,弥补了String的缺陷。StringBuffer和StringBuilder类似,但StringBuffer的方法是线程安全的。文章还列举了StringBuffer的常用方法,并提供了使用示例代码。最后总结了这三者的主要区别。
String、StringBuffer、StringBuilder的区别