Spring Boot 设置 CORS
同源策略与跨域资源共享
同源策略(Same-Origin Policy)是浏览器的一种安全机制,旨在防止一个来源的文档或脚本与另一个来源的资源进行不安全的交互。它是 Web 浏览器中实现安全性的关键组成部分。早期的 Web 应用通常是单体架构,前端和后端都在同一个服务器上运行,完全符合同源策略,因此没有跨域问题。随着 Web 技术的发展,现代 Web 应用越来越多地采用前后端分离架构,前端和后端部署在不同的域名和端口上,导致跨域请求需求增加。因此引入了跨域资源共享(Cross-Origin Resource Sharing, CORS),它允许服务器明确指示哪些域可以访问其资源,这样可以防止恶意网站未经授权访问用户数据。这样既保证了安全性,又灵活地实现了跨域通信。
使用 @CrossOrigin 注解配置 CORS
Spring 提供了 @CrossOrigin
注解,可以直接在控制器或特定的请求处理方法上使用:
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@CrossOrigin(origins = "http://localhost:8080") // 允许特定来源
@GetMapping("/api/hello")
public String hello() {
return "Hello, world!";
}
}