Spring Boot解决跨域问题

Spring Boot解决跨域问题

方法一(常用)

实现接口WebMvcConfigurer,并重写addCorsMappings(CorsRegistry registry)

@Configuration
public class CorsConfig implements WebMvcConfigurer {
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                .allowedOrigins("*")
                .allowCredentials(true)
                .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS")
                .maxAge(3600);
    }
}

方法二

在上下文中创建一CorsFilter类型的bean,因为http请求到达时序为:filter,servlet,拦截器(HandlerInterceptor)

@Configuration
public class CorsConfig {
    @Bean
    public CorsFilter corsFilter() {
        CorsConfiguration corsConfiguration = new CorsConfiguration();
        corsConfiguration.addAllowedOrigin("*");
        corsConfiguration.addAllowedHeader("*");
        corsConfiguration.addAllowedMethod("*");
        corsConfiguration.setAllowCredentials(true);
        
        UrlBasedCorsConfigurationSource urlBasedCorsConfigurationSource = new UrlBasedCorsConfigurationSource();
        urlBasedCorsConfigurationSource.registerCorsConfiguration("/**", corsConfiguration);
        return new CorsFilter(urlBasedCorsConfigurationSource);
    }
}

方法三

向@RequestMapping(其他Mapping注解也行)注解处理程序方法添加一个@CrossOrigin注解

@CrossOrigin

三种方法对比

  • 细粒度(小到大):3 < 1 < 2
  • 版本要求: 3 > 2 >=1
  • 区别:方法1使用WebMvcConfigurer接口,方法2使用filter,方法3使用注解
posted @   鸭梨的药丸哥  阅读(18)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示