Spring Boot项目中解决跨域问题(四种方式)
在Spring Boot项目中解决跨域问题,可以通过以下四种方式:
- 通过CorsFilter
@Bean
public CorsFilter corsFilter() {
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
CorsConfiguration config = new CorsConfiguration();
config.setAllowCredentials(true);
config.addAllowedOrigin("*");
config.addAllowedHeader("*");
config.addAllowedMethod("*");
source.registerCorsConfiguration("/**", config);
return new CorsFilter(source);
}
- 通过配置文件
# 允许跨域的域,*代表允许任何域
spring.servlet.multipart.enabled=true
spring.servlet.multipart.file-size-threshold=2KB
spring.cors.allowed-origins=*
# 设置允许的方法
spring.cors.allowed-methods=GET,POST,PUT,DELETE
# 设置允许的头
spring.cors.allowed-headers=*
- 通过@CrossOrigin注解
@CrossOrigin(origins = "*")
@RestController
public class MyController {
// ...
}
- 通过WebMvcConfigurer接口
@Configuration
public class MyConfiguration implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("*")
.allowedMethods("GET", "POST", "PUT", "DELETE");
}
}
以上四种方式可以根据具体需求选择使用,一般推荐使用配置文件的方式进行全局配置,因为它更加集中和简洁。
评论已关闭