项目用springboot 2.1.9,跨域就没问题,但是改成最新的2.2.0,就无法跨域,哪位大佬知道为什么吗

项目用springboot 2.1.9,跨域就没问题,但是改成最新的2.2.0,就无法跨域,哪位大佬知道为什么吗

这种问题,没头没脑。没日志,没配置,没浏览器控制台信息,没操作流程。没人猜得到是啥问题。

@Configuration
public class CorsConfig extends WebMvcConfigurationSupport {

@Override
protected void addCorsMappings(CorsRegistry registry) {
    super.addCorsMappings(registry);
    registry.addMapping("/**")
            .allowedMethods("*")
            .allowedOrigins("*")
            .allowedHeaders("*");
}

}

  1. 断点试试,你进入了这个方法
  2. 建议使用实现接口implements WebMvcConfigurer 而不是继承WebMvcConfigurationSupport,具体原因是…(我忘了…:sweat_smile:
1 个赞

WebMvcConfigurerAdapter 我这边实现的是重写的这个类方法 addCorsMappings

代码部分:

@Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                //放行哪些原始域
                .allowedOrigins("*")
                //是否发送Cookie信息
                .allowCredentials(true)
                //放行哪些原始域(请求方式)
                .allowedMethods("GET", "POST", "PUT", "DELETE", RequestMethod.OPTIONS.name())
                //放行哪些原始域(头部信息)
                .allowedHeaders("*")
                //暴露哪些头部信息(因为跨域访问默认不能获取全部头部信息)
                .exposedHeaders("access-control-allow-headers",
                        "access-control-allow-methods",
                        "access-control-allow-origin",
                        "access-control-max-age",
                        "X-Frame-Options",
                        "userAuth")
                .maxAge(3600);
    }