springBoot2.3.17跨域问题
时间: 2024-08-14 21:04:03 浏览: 55
Spring Boot 2.3.17版本处理跨域(CORS)问题通常是通过`@CrossOrigin`注解来解决的。这个注解可以放在控制器类、特定的方法上,或者配置全局的CORS策略。下面是一些基本步骤:
1. **启用CORS**:在Spring Boot应用中,添加`spring.mvc.cors.enabled=true`到application.properties或application.yml文件中,开启CORS功能。
2. **配置允许的源**:在需要跨域请求的地方,如`@RestController`上使用`@CrossOrigin`,可以配置允许的域名或所有来源:
```java
@CrossOrigin(origins = "*", // 允许所有来源,也可以指定特定的源, *代表通配符
allowedHeaders = "*", // 允许的所有头信息
allowCredentials = true) // 是否支持带凭据访问
@GetMapping("/api")
public String corsExample() {
return "Hello CORS";
}
```
3. **更细粒度控制**:如果希望对每个HTTP方法有特定的设置,可以在对应的方法上单独标注`@CrossOrigin`,例如:
```java
@GetMapping("/private-api")
@CrossOrigin(allowedOrigins = "http://your-origin.com", maxAge = 3600)
public String privateApi() {
return "Private API";
}
```
4. **全局CORS配置**:如果需要统一管理所有的跨域请求,可以在`WebMvcConfigurer`接口的实现类中,覆盖`addCorsMappings`方法:
```java
@Configuration
public class CorsConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**").allowedOrigins("*").allowedMethods("*").allowCredentials(true);
}
}
```
这将允许从任何源头发送任意类型的请求,并且支持带凭据。
阅读全文