提供三种配置方式:
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";
}