在Spring Boot中实现跨域资源共享(CORS)可以通过以下步骤:
-
添加CORS配置类: 创建一个配置类,继承自
WebMvcConfigurerAdapter(在Spring Boot 2.x版本中,应继承自WebMvcConfigurer)。在该配置类中覆盖addCorsMappings()方法,添加CORS相关配置。 -
配置CORS规则: 在
addCorsMappings()方法中,通过registry.addMapping("/**")指定允许跨域请求的路径,使用allowedOrigins()、allowedMethods()、allowedHeaders()等方法来设置允许的源、HTTP方法和请求头。 -
注册CORS配置类: 将自定义的CORS配置类注册为一个Bean,使其生效。
下面是一个简单的示例:
@Configuration
public class CorsConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("http://example.com") // 允许的源,可以设置多个,也可以使用通配符 *
.allowedMethods("GET", "POST", "PUT", "DELETE") // 允许的HTTP方法
.allowedHeaders("*"); // 允许的请求头,可以设置多个
}
}
上述示例中,配置了允许来自http://example.com的跨域请求,允许的HTTP方法为GET、POST、PUT和DELETE,允许的请求头为任意请求头。
请注意,使用CORS可能会导致安全风险,建议仅在必要时开启跨域访问。如果需要更灵活的配置,还可以使用allowedMethods()和allowedHeaders()等方法来设置更具体的规则。
另外,Spring Boot还提供了更简单的配置方式,你可以在application.properties或application.yml中添加以下配置:
spring:
cors:
allowed-origins: http://example.com
allowed-methods: GET,POST,PUT,DELETE
allowed-headers: "*"
通过上述配置,也可以实现相同的CORS配置。