springcloud微服务跨域的配置小结

 更新时间:2025年12月03日 09:54:17   作者:无风三尺浪  
本文主要介绍了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 跨域配置内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • tomcat请求流程源码解进阶篇

    tomcat请求流程源码解进阶篇

    这篇文章主要为大家介绍了tomcat请求流程源码解进阶,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • Java并发之ReentrantLock类源码解析

    Java并发之ReentrantLock类源码解析

    这篇文章主要为大家详细介绍了Java并发系列之ReentrantLock源码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-03-03
  • Java ArrayList的基本概念和作用及动态数组的机制与性能

    Java ArrayList的基本概念和作用及动态数组的机制与性能

    在Java中,ArrayList是一个实现了List接口的动态数组,它可以根据需要自动增加大小,因此可以存储任意数量的元素,这篇文章主要介绍了探秘Java ArrayList的基本概念和作用及动态数组的机制与性能,需要的朋友可以参考下
    2023-12-12
  • Hibernate组件映射代码详解

    Hibernate组件映射代码详解

    这篇文章主要介绍了Hibernate组件映射代码详解,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-02-02
  • SpringBoot Session接口验证实现流程详解

    SpringBoot Session接口验证实现流程详解

    这篇文章主要介绍了SpringBoot+Session实现接口验证(过滤器+拦截器)文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-09-09
  • JAVA系统中Spring Boot应用程序的配置文件application.yml使用详解

    JAVA系统中Spring Boot应用程序的配置文件application.yml使用详解

    这篇文章主要介绍了JAVA系统中Spring Boot应用程序的配置文件application.yml的相关资料,application.yml是Spring Boot应用程序的配置文件,定义了服务器、Spring、日志、安全及其他配置属性,确保应用程序正确启动和运行,需要的朋友可以参考下
    2025-01-01
  • SpringSecurity数据库进行认证和授权的使用

    SpringSecurity数据库进行认证和授权的使用

    本文主要介绍了用户的账号、密码以及角色信息在数据库中的认证和授权,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • java多线程实现同步锁卖票实战项目

    java多线程实现同步锁卖票实战项目

    本文主要介绍了java多线程实现同步锁卖票实战项目,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • 解决@Transaction注解导致动态切换更改数据库失效问题

    解决@Transaction注解导致动态切换更改数据库失效问题

    这篇文章主要介绍了解决@Transaction注解导致动态切换更改数据库失效问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • JavaWeb中上传和下载文件实例代码

    JavaWeb中上传和下载文件实例代码

    这篇文章主要介绍了JavaWeb中上传和下载文件实例代码,需要的朋友可以参考下
    2017-06-06

最新评论