SpringBoot如何解决跨域问题的?
时间: 2024-04-30 20:19:11 浏览: 16
Spring Boot 中可以通过添加配置类或者注解的方式来解决跨域问题。以下是两种方式:
1. 添加配置类
可以创建一个配置类,通过添加 `@Configuration` 和 `@EnableWebMvc` 注解来启用 CORS 支持,然后重写 `addCorsMappings` 方法来设置允许跨域请求的配置。
```java
@Configuration
@EnableWebMvc
public class CorsConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**") // 允许跨域的路径
.allowedOrigins("*") // 允许跨域请求的域名
.allowedMethods("POST", "GET", "PUT", "OPTIONS", "DELETE") // 允许跨域请求的方法
.maxAge(168000) // 预检请求的有效期,单位为秒
.allowedHeaders("*") // 允许跨域请求包含的头信息
.allowCredentials(true); // 是否允许发送Cookie
}
}
```
2. 添加注解
可以在需要支持跨域的控制器方法上添加 `@CrossOrigin` 注解来设置允许跨域请求的配置。
```java
@RestController
public class UserController {
@GetMapping("/users")
@CrossOrigin(origins = "*", maxAge = 168000)
public List<User> getUsers() {
// ...
}
}
```
以上两种方式都可以解决 Spring Boot 中的跨域问题。