springboot配置cors
时间: 2025-04-20 14:31:10 浏览: 32
### 如何在 Spring Boot 中配置 CORS 解决跨域问题
#### 方法一:使用 `@CrossOrigin` 注解
可以直接在控制器类或特定方法上应用 `@CrossOrigin` 注解来允许来自指定源的跨域请求。这种方式适合于细粒度控制,即针对某个接口单独设置跨域规则。
```java
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class MyController {
@CrossOrigin(origins = "http://example.com")
@GetMapping("/greeting")
public String greeting() {
return "Hello, World!";
}
}
```
这种方法简单直观,适用于小型应用程序中的单个API端点[^3]。
#### 方法二:全局配置 CORS 政策
为了简化开发并统一管理整个Web应用的CORS政策,可以采用全局方式定义CORS行为。这通常是在一个实现了 `WebMvcConfigurer` 接口的配置类里完成的:
```java
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("http://localhost:8081")
.allowedMethods("*")
.allowedHeaders("*");
}
}
```
上述代码片段展示了如何通过覆盖默认的 `addCorsMappings()` 方法来注册自定义的CORS映射规则。此法能有效地减少重复劳动,并保持项目的整洁性[^4]。
当涉及到具体的IP地址而非域名时,需要注意的是,添加到 `.allowedOrigins()` 的字符串应当精确匹配客户端发起请求的实际URL模式,包括协议、主机名和端口号。例如,如果前端服务运行在一个具有静态IP地址的服务器上,则应按照实际的服务路径格式化输入,像这样 `"http://192.168.3.16:9999"` 而不是带有额外子路径的形式 `"http://192.168.3.16:9999/foodie-shop"` [^5].
阅读全文
相关推荐
















