盘点 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);
}
- 通过配置文件application.properties或application.yml
# application.properties
spring.servlet.multipart.max-file-size=128KB
spring.servlet.multipart.max-request-size=128KB
spring.cors.allowed-origins=http://domain2.com
spring.cors.allowed-methods=GET, POST, PUT
# application.yml
spring:
cors:
allowed-origins:
- http://domain1.com
allowed-methods:
- GET
- POST
- PUT
- 使用注解@CrossOrigin
@CrossOrigin(origins = "http://domain2.com")
@RestController
public class MyController {
// ...
}
- 自定义配置类
@Configuration
public class CorsConfig {
@Bean
public WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurer() {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("http://domain2.com")
.allowedMethods("GET", "POST", "PUT");
}
};
}
}
以上方法可以根据具体需求选择使用,并可以结合在一起使用以提供更全面的跨域请求支持。
评论已关闭