springboot解决跨域问题青
时间: 2025-01-04 15:35:14 浏览: 50
### 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!";
}
}
```
此代码片段展示了如何通过 `@CrossOrigin` 注解为 `/greeting` 接口启用跨域支持[^3]。
#### 方法二:全局配置 CORS 支持
对于更广泛的跨域需求,比如整个应用程序都需要开启跨域,则可以通过重写 Web 配置的方式来进行全局性的 CORS 设置。这通常是在配置类中完成:
```java
@Configuration
@EnableWebMvc
public class WebConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("*") // 可以替换为具体的域名列表
.allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS");
}
}
```
上述例子实现了对所有路径 (`/**`) 的跨域访问权限开放给任何来源(`*`) ,并指定了允许的操作方式(GET、POST等)[^1]。
需要注意的是,在实际生产环境中不建议将 `.allowedOrigins()` 设定为 `"*"`, 而应该明确列出信任的站点地址;另外当涉及到 IP 地址而非正式注册过的域名时,确保正确填写完整的 URL 形式 (例如 http://192.168.3.16:9999),否则可能会遇到跨域失败的情况[^4]。
阅读全文
相关推荐


















