什么是跨域问题?后端如何解决跨域问题?

跨域问题是指浏览器为了安全,对不同域(包含不同协议、不同端口或不同主机名)的请求进行限制,从而导致请求无法正常访问后端接口。

跨域问题的产生源于浏览器的同源策略(Same-Origin Policy) ,这是浏览器为保护用户数据安全而建立的核心安全机制。同源策略规定:只有当两个资源的协议(protocol)、域名(domain)、端口(port) 完全相同时,才属于同一来源,否则视为跨域。

  • 跨域场景示例:

    • 前端运行在 http://localhost:8080,后端接口在 http://api.example.com:8081(域名、端口不同)
    • 前端通过 https 访问,后端接口使用 http 协议(协议不同)
    • 前端部署在 www.example.com,后端在 api.example.com(子域名不同)
  • 同源策略的安全意义:防止恶意网站通过脚本获取其他网站的用户 Cookie、本地存储等敏感信息,避免 CSRF(跨站请求伪造)、XSS(跨站脚本攻击)等安全风险。

java 复制代码
@Configuration  
public class CorsConfig implements WebMvcConfigurer {  
  
    @Override  
    public void addCorsMappings(CorsRegistry registry) {  
        // 覆盖所有请求  
        registry.addMapping("/**")  
                // 允许发送 Cookie                .allowCredentials(true)  
                // 放行哪些域名(必须用 patterns,否则 * 会和 allowCredentials 冲突)  
                .allowedOriginPatterns("*")  
                .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS")  
                .allowedHeaders("*")  
                .exposedHeaders("*");  
    }  
}
相关推荐
泡海椒6 分钟前
JQuick-Excel 字段映射实战:用 MAPPING 固化 Excel 表头与业务字段契约
xml·java·开发语言·excel
梦幻通灵12 分钟前
IDEA 实用快捷键【持续更新】
java·ide·intellij-idea
南归北隐13 分钟前
Spring AI Alibaba Graph框架实现Tools工具调用
java·后端·spring·spring ai·spring ai tools
开开心心就好20 分钟前
视频模糊怎么修复?免费工具支持批量处理
java·前端·人工智能·智能手机·pdf·excel
w_zero_one1 小时前
链表(3)
java·数据结构·算法
资深技术分享员1 小时前
遗留系统——把“改不动的老系统“接过来
java·服务器·数据库
江湖有缘1 小时前
Docker实战 | 使用Docker部署Bibliotheca阅读习惯管理工具
java·docker·容器
艾莉丝努力练剑1 小时前
【AI大模型接入SDK】ChatSDK:CMake构建静态库完整实现
java·开发语言·网络·c++·人工智能·学习·sdk
百度一下吧1 小时前
umi后台管理项目实战:从工程搭建到生产构建
java·前端·javascript
Joe_Wang51 小时前
【从0到1学习JVM · 14】堆内存各区域分工与Xms和Xmx设为一样的真相
java·jvm·学习·垃圾回收