springcloud微服务跨域的配置小结
注意:关于跨域,不同的跨域类型需要不同的配置
一、相同的二级域名之间的跨域
最近在处理跨域问题的时候,发现在微服务中配置允许跨域配置,发现也无济于事了。排查发现,之前之所以这样配置能够生效,是因为都是相同的二级域名之间的跨域,比如:service.csdn.com访问api.csdn.com,这种相同的二级域名配置跨域,可以直接在我们的微服务中添加下列配置进行解决
public class WebMvcConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**").allowedOrigins("*")
.allowedMethods("GET", "HEAD", "POST", "PUT", "DELETE", "OPTIONS")
.allowCredentials(false).maxAge(3600);
}
}二、不同的二级域名之间的跨域
什么是不同的二级域名?比如从service.csdn.com站点访问 api.abcd.com的时候,这时候在我们的为服务器中配置上面的配置,你就会发现无济于事,还是会抛出跨域请求异常,这个时候,就需要在我们的springcloud gateway网关的服务里去配置跨域了,具体配置如下:
spring:
cloud:
gateway:
#这个是解决和其他微服务配置的跨域冲突的
default-filters:
- DedupeResponseHeader=Vary Access-Control-Allow-Credentials Access-Control-Allow-Origin
- DedupeResponseHeader=Access-Control-Allow-Origin
globalcors:
cors-configurations:
'[/**]':
# 允许跨域的源(网站域名/ip),设置*为全部
# 允许跨域请求里的head字段,设置*为全部
# 允许跨域的method, 默认为GET和OPTIONS,设置*为全部
allow-credentials: true
# allowedOriginPatterns: "*"
#这里是配置允许跨域过来的网站,建议用这种
allowed-origins:
- "http://service.csdn.com"
allowed-headers: "*"
allowed-methods:
- OPTIONS
- GET
- POST
- DELETE
- PUT
- PATCH
max-age: 3600上述的两种配置,基本就能够解决大多数的跨域问题了。如果在网关里配置跨域了,其实微服务的跨域就可以取消不用了。结合自己的实际情况,选择跨域配置,才是最好的选择。
到此这篇关于springcloud微服务跨域的配置小结的文章就介绍到这了,更多相关springcloud 跨域配置内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Java ArrayList的基本概念和作用及动态数组的机制与性能
在Java中,ArrayList是一个实现了List接口的动态数组,它可以根据需要自动增加大小,因此可以存储任意数量的元素,这篇文章主要介绍了探秘Java ArrayList的基本概念和作用及动态数组的机制与性能,需要的朋友可以参考下2023-12-12
JAVA系统中Spring Boot应用程序的配置文件application.yml使用详解
这篇文章主要介绍了JAVA系统中Spring Boot应用程序的配置文件application.yml的相关资料,application.yml是Spring Boot应用程序的配置文件,定义了服务器、Spring、日志、安全及其他配置属性,确保应用程序正确启动和运行,需要的朋友可以参考下2025-01-01
解决@Transaction注解导致动态切换更改数据库失效问题
这篇文章主要介绍了解决@Transaction注解导致动态切换更改数据库失效问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-09-09


最新评论