当前位置: 首页 > news >正文

跨域问题说明

什么是跨域

跨域由于浏览器的同源策略造成的。同源策略是指,通过浏览器脚本发起一次请求(如AJax),这次请求的URL与当前的URL的协议,域名和端口必须相同,如果有一个不相同,则构成跨域。

注意点:

1.非浏览器环境无跨域。

2.跨域针对的是浏览器脚本发起的请求,如地址栏直接输入URL,是不会构成跨域的。

3.跨域是指一次请求,判断该次请求和当前页面URL的协议,域名和端口。

如何解决跨域

一.CORS(跨域资源共享)

原理:服务端通过响应头声明允许的跨域来源、方法和头部。

实现方式

1.Spring Boot配置

  • 局部配置:使用 @CrossOrigin 注解

@RestController
@CrossOrigin(origins = "https://frontend.com", methods = {RequestMethod.GET, RequestMethod.POST})
public class MyController { ... }
  • 全局配置:实现 WebMvcConfigurer

@Configuration
public class CorsConfig implements WebMvcConfigurer {@Overridepublic void addCorsMappings(CorsRegistry registry) {registry.addMapping("/**").allowedOrigins("https://frontend.com").allowedMethods("GET", "POST").allowCredentials(true); // 允许携带Cookie}
}

2.原生Servlet:在过滤器中设置响应头

response.setHeader("Access-Control-Allow-Origin", "https://frontend.com");

适用场景:前后端分离项目、API服务需开放给特定前端域名

二、反向代理——基础设施层方案

原理:通过同源代理服务器(如 Nginx)转发请求,绕过浏览器限制

server {listen 80;server_name frontend.com;location /api/ {proxy_pass http://backend-server:8080/; # 转发到后端add_header 'Access-Control-Allow-Origin' '*'; # 可选,双重保障}
}

优势

  • 无需修改代码,适用于任何后端语言

  • 可缓存静态资源、负载均衡,提升性能

  • 隐藏真实后端 IP,增强安全性

    适用场景:生产环境部署、微服务架构、多域名整合

相关文章:

  • 开发语言本身只是提供了一种解决问题的工具
  • 给docker 配置代理 IP机端口
  • Java事务失效(面试题)的常见场景
  • Python 商务数据分析—— NumPy 学习笔记Ⅱ
  • 登录拦截功能实现 -瑞吉外卖笔记
  • 2025年EAAI SCI1区TOP,基于低差异序列的仿果蝇无人机地下环境路径规划算法,深度解析+性能实测
  • 群晖 NAS Docker 镜像加速配置详细教程
  • SpringBean 创建过程详解
  • 【ELK(Elasticsearch+Logstash+Kibana) 从零搭建实战记录:日志采集与可视化】
  • 预训练 vs. 微调:大模型落地的核心两步,究竟有何不同?
  • 【Linux手册】进程地址空间:从虚拟到物理的内存寻址之旅
  • 通义大模型在文档自动化处理中的高效部署指南(OCR集成与批量处理优化)
  • go excel解析库xuri/excelize中的SAX
  • 【PyTorch项目实战】CycleGAN:无需成对训练样本,支持跨领域图像风格迁移
  • 开关电源:BUCK和BOOST
  • NotePad++ 怎么没有找到插件管理?
  • C++ 友元:打破封装边界的“特殊权限”
  • LangChain赋能RAG:从构建到评估优化的一体化实战指南
  • 跨平台多路RTSP/RTMP转RTMP推送模块深度解析
  • Python函数实战:从基础到高级应用
  • 广东制作公司网站/seo新人培训班
  • 山东济南建网站公司/昆山网站建设公司
  • 广州工程招标投标信息网/厦门网站搜索引擎优化
  • 广州网站建设培训学校/广州网站关键词排名
  • 嘉兴网站制作推广/怎么制作个人网站
  • 鸡西网站制作/班级优化大师官网登录