1. 为什么跨域问题如此棘手?
前后端分离架构下,浏览器出于安全考虑实施的同源策略(Same-Origin Policy)就像一道防火墙。我清楚地记得第一次遇到CORS问题时,控制台那个鲜红的"Access-Control-Allow-Origin"错误提示让人抓狂。当时前端同事在本地调试时一切正常,但联调时所有API请求都被浏览器拦截,这种"看得见摸不着"的困境,相信不少开发者都深有体会。
跨域问题的本质是浏览器与服务器之间的安全协议博弈。当你的前端应用运行在http://localhost:8080,而后端API部署在http://api.yourservice.com时,就触发了跨域限制。有趣的是,Postman等工具能正常访问接口,唯独浏览器会拦截,这正是因为同源策略是浏览器特有的安全机制。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 全局CORS配置的王者方案
2.1 CorsConfig配置类核心实现
在Spring Boot项目中创建CorsConfig.java配置类,这是我经过多个生产项目验证的稳定方案:
java复制import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class CorsConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("*") // 生产环境应替换为具体域名
.allowedMethods("GET",
