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

SpringBoot - 什么是跨域?如何解决跨域?

什么是跨域?

在浏览器上当前访问的网站,向另一个网站发送请求,用于获取数据的过程就是跨域请求。
跨域,是浏览器的同源策略决定的,是一个重要的浏览器安全策略,用于限制一个 origin 的文档或者它加载的脚本与另一个源的资源进行交互,它能够帮助阻隔恶意文档,减少可能被攻击的媒介,可以使用 CORS 配置解除这个限制。

什么是同源策略?

同源策略/SOP(Same origin policy)是一种约定,由Netscape公司1995年引入浏览器,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,浏览器很容易受到XSS、CSFR等攻击,同源策略能够限制以下行为:

  1. Cookie、LocalStorage 和 IndexDB 无法读取
  2. DOM 和 JS对象无法获得
  3. AJAX 请求不能发送
    注意:跨域限制是浏览器的机制,如果直接在服务端请求,是不会触发跨域限制的。

同源/不同源?

在这里插入图片描述

跨域解决方案:

  1. 通过jsonp跨域
  2. document.domain + iframe跨域
  3. location.hash + iframe
  4. window.name + iframe跨域
  5. postMessage跨域
  6. 跨域资源共享(CORS)
  7. nginx代理跨域
  8. nodejs中间件代理跨域
  9. WebSocket协议跨域

什么是跨域资源共享(CORS)?

CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing)。
它允许浏览器向跨源服务器,发出XMLHttpRequest请求,从而克服了AJAX只能同源使用的限制。
普通跨域请求,只服务端设置Access-Control-Allow-Origin即可,前端无须设置;若要带cookie请求,前后端都需要设置。目前,所有浏览器都支持该功能,CORS也已经成为主流的跨域解决方案。

NGINX代理跨域的原理

NGINX实现代理跨域的原理,实际就是把WEB项目和后端项目放到一个域中,这样就不存在跨域问题了,NGINX根据请求地址去请求不同服务器,也就是真正干活的服务器上的资源。

http://www.lryc.cn/news/35609.html

相关文章:

  • Astra pro相机使用说明
  • 扬帆优配|数字经济刮起“东风”,龙头晋级7连板
  • Day911.DTO和DO为什么要互转 -SpringBoot与K8s云原生微服务实践
  • 查找、排序、二叉树的算法,统统记录于此。
  • 如何用Python实现在网页中嵌入YouTube的视频?
  • Easy Deep Learning——PyTorch中的自动微分
  • 【生物信息】利用ChatGPT解释GO分析中的关于Biological Processes的问题
  • 2018年MathorCup数学建模C题陆基导弹打击航母的数学建模与算法设计解题全过程文档及程序
  • 打怪升级之CFile类
  • [css]通过网站实例学习以最简单的方式构造三元素布局
  • 【冲刺蓝桥杯的最后30天】day6
  • ssm框架之spring:浅聊IOC
  • pytest初识
  • 设计模式~责任链模式(Chain of Responsibility)-12
  • 【ElasticSearch】(一)—— 初识ES
  • MySQL 事务隔离
  • 基础06-JS中for-in和for-of有什么区别
  • AI视频智能分析EasyCVR视频融合平台录像计划模块搜索框细节优化
  • TCP和UDP对比
  • CVS Health 西维斯健康EDI需求
  • Anaconda配置Python科学计算库SciPy的方法
  • 数据库基本功之复杂查询的子查询
  • 脑机接口科普0019——大脑的分区及功能
  • 阿里云服务器使用教程:CentOS 7 安装JDK及Tomcat(以jdk1.8、tomcat9.0.37为例)
  • Ubuntu20.04下安装vm17+win10/11
  • Kalman Filter in SLAM (1) ——Data Fusion and Kalman Filter(数据融合和卡尔曼滤波)
  • 黑马程序最后
  • u盘系统文件删除后的五种恢复方法
  • 【玩转c++】List讲解和模拟底层实现
  • 【Python】特征编码