提供三种配置方式:
1.配置过滤器,实现 WebMvcConfigurer接口(springboot2.x的方式)
@Configuration
public class GlobalCorsConfig implements WebMvcConfigurer {
//添加到容器中管理
@Bean
public CorsFilter corsFilter() {
CorsConfiguration config = new CorsConfiguration();
config.addAllowedOrigin("*");
config.addAllowedMethod("*");
config.addAllowedHeader("*");
//???
// config.addExposedHeader("*");
config.setMaxAge(3600L);
config.setAllowCredentials(true);
UrlBasedCorsConfigurationSource configSource = new UrlBasedCorsConfigurationSource();
configSource.registerCorsConfiguration("/**", config);
return new CorsFilter(configSource);
}
}
2.配置拦截器,继承WebMvcConfigurerAdapter类(1.x的方式,在2.x已经过时)
@Configuration
public class MyConfiguration extends WebMvcConfigurerAdapter {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedHeaders("*")
.allowedOrigins("*")
.allowedMethods("*")
// .allowedHeaders("Content-Type, x-requested-with, X-Custom-Header, Authorization","token")
// .allowedMethods("POST", "GET", "PUT", "OPTIONS", "DELETE")
.maxAge(3600)
.allowCredentials(true);
;
}
}
3. 单个请求的跨域通过 @CrossOrigin 注解来实现
@RequestMapping("/hello")
@CrossOrigin(allowCredentials = "true", allowedHeaders = "*",origins = "*")
public String hello( ){
return "Hello World springboot";
}