提供三種配置方式:
1.配置過濾器,實現 WebMvcConfigurer接口(springboot2.x的方式)
@Configuration public class GlobalCorsConfig implements WebMvcConfigurer { //添加到容器中管理 @Bean public CorsFilter corsFilter() { CorsConfiguration config = new CorsConfiguration(); config.addAllowedOrigin("*"); config.setAllowCredentials(true); config.addAllowedMethod("*"); config.addAllowedHeader("*"); config.addExposedHeader("*"); 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("/**")
.allowCredentials(true)
.allowedHeaders("*")
.allowedOrigins("*")
.allowedMethods("*");
}
}
以上兩種是針對全局的配置方式
3. 單個請求的跨域通過 @CrossOrigin 注解來實現
@RequestMapping("/hello") @CrossOrigin("http://127.0.0.1:8080") public String hello( ){ return "Hello World springboot"; }