1. 方式一
自定义CorsFilter容器
@Bean
public CorsFilter corsFilter(){
CorsConfiguration corsConfiguration = new CorsConfiguration();
corsConfiguration.addAllowedHeader("*");//允许跨域的请求头
corsConfiguration.addAllowedOrigin("*");//允许的域名,*表示所有,也可以是具体的域名
corsConfiguration.addAllowedMethod("*");//允许跨域的请求
corsConfiguration.setAllowCredentials(true);//允许跨域标志位
UrlBasedCorsConfigurationSource urlBasedCorsConfigurationSource = new UrlBasedCorsConfigurationSource();
urlBasedCorsConfigurationSource.registerCorsConfiguration("/**",corsConfiguration);//对哪些路径进行跨域设置,**表示所有
CorsFilter corsFilter = new CorsFilter(urlBasedCorsConfigurationSource);
return corsFilter;
}
2. 方式二
实现WebMvcConfigurer
接口并重写addCorsMappings
方法。
@Configuration
class CorsFilterConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")//对哪些路径进行跨域设置,**表示所有
.allowCredentials(true)//允许跨域标志位
.allowedHeaders("/*")//允许跨域的请求头
.allowedMethods("GET","POST","PUT","DELETE")//允许跨域的请求
.allowedOrigins("*");//允许的域名,*表示所有,也可以是具体的域名
}
}
3. 方式三
使用@CrossOrigin
注解
@GetMapping("/students")
@CrossOrigin
public List<Student> studentList(Student param) {
List<Student> result = new ArrayList<>();
//列表查询业务逻辑
Student student = new Student();
student.setName("张三");
result.add(student);
student = new Student();
student.setName("李四");
result.add(student);
return result;
}