前后端联调跨域问题

news2024/11/29 11:46:49

文章目录

    • 什么是同源策略
    • 如何判断是否同源?
    • 跨域资源共享(CORS)
    • 如何解决跨域问题

什么是同源策略

同源策略限制了从同一个源加载的文档或脚本如何与来自另一个源的资源进行交互。这是一个用于隔离潜在恶意文件的重要安全机制。

如何判断是否同源?

如果两个页面的协议,端口(如果有指定)和主机都相同,则两个页面具有相同的源。
下表给出了相对http://store.company.com/dir/page.html同源检测的示例:

URL结果原因
http://store.company.com/dir2/other.html成功只有路径不同
http://store.company.com/dir/inner/another.html成功只有路径不同
https://store.company.com/secure.html失败不同协议 ( https和http )
http://store.company.com:81/dir/etc.html失败不同端口 ( http:// 80是默认的)
http://news.company.com/dir/other.html失败不同域名 ( news和store )

Internet Explorer例外情况

当涉及到同源策略时,Internet Explorer 有两个主要的不同点

  • 授信范围(Trust Zones):两个相互之间高度互信的域名,如公司域名(corporate domains),不遵守同源策略的限制。
  • 端口:IE 未将端口号加入到同源策略的组成部分之中,因此 http://company.com:81/index.htmlhttp://company.com/index.html 属于同源并且不受任何限制。

这些例外是非标准的,其它浏览器也未做出支持,但会助于开发基于window RT IE的应用程序。

跨域资源共享(CORS)

使用 CORS 允许跨源访问

跨域资源共享(CORS) 是一种机制,它使用额外的 HTTP 头来告诉浏览器 让运行在一个 origin (domain) 上的Web应用被准许访问来自不同源服务器上的指定的资源。当一个资源从与该资源本身所在的服务器不同的域、协议或端口请求一个资源时,资源会发起一个跨域 HTTP 请求。

出于安全原因,浏览器限制从脚本内发起的跨源HTTP请求。 例如,XMLHttpRequest和Fetch API遵循同源策略。 这意味着使用这些API的Web应用程序只能从加载应用程序的同一个域请求HTTP资源,除非响应报文包含了正确CORS响应头。

如何解决跨域问题

跨域可以通过前端解决也可以通过后端

  • 前端配置代理
  • 通过nginx转发
  • 后端配置Cors

这里主要介绍Cors

  • Cors跨域资源共享使用额外的Http头台告诉浏览器,允许另一个源来请求访问自己的资源。
  • 允许使用什么http请求方法(GET、POST、PUT、DELETE、OTPIONS)
  • 是否允许携带Cookie

在这里插入图片描述

以下是使用Spring Boot的一个跨域过滤器,供参考

@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**") 
                .allowedOrigins("*")
                .allowedMethods("POST", "GET", "PUT", "DELETE")
                .allowCredentials(true)
                .allowedHeaders("*")
                .maxAge(3600);
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/589970.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

从中国人民大学与加拿大女王大学金融硕士的学员构成,了解金融行业都有哪些职位

金融行业最受欢迎的岗位莫过于券商、银行、基金公司、私募市场、体制内(监管部门、交易所等)、信托、大企业投资部、保险、管理咨询、资产管理。在当下如果要选择工作,想找就业率第一、薪酬排名第一的行业,那一定是金融工作。中国…

03 redis新类型bitmap/hyperloglgo/GEO

亿级系统中常见的四种统计 聚合统计 统计多个集合元素的聚合结果,就是前面讲解过的交差并等集合统计交并差集和聚合函数的应用 排序统计 抖音视频最新评论留言的场景,请你设计一个展现列表。考察你的数据结构和设计思路设计案例和回答思路以抖音vcr最…

3.java高级之GUI编程

1.gui (graphical user interface) awt sun公司最早的gui,不美观,不兼容各平台swing : awt升级2.顶层容器(只有一个)(其他的只能放这里)Jframe Jdialog对话框 Jwindow(x) //在main方法写fnew Jframe(); f.setSize(300,300); //设置大小f.setTitle("hello"); //设置…

java条件语句

文章目录 一、java条件语句1、Java 条件语句 - if...else2、Java switch case 语句 总结 一、java条件语句 1、Java 条件语句 - if…else Java 中的条件语句允许程序根据条件的不同执行不同的代码块。 一个 if 语句包含一个布尔表达式和一条或多条语句。 语法 if 语句的语法…

你真的了解kotlin中协程的suspendCoroutine原理吗?

文章目录 什么是协程suspendCoroutineUninterceptedOrReturnsuspendCoroutineUninterceptedOrReturn存在的问题suspendCoroutinesuspendCancellableCoroutine ​ 引言: 在Kotlin协程中,如何让一个suspned 函数挂起?如何让挂起协程恢复&#…

STM32G4 比较器COMPx(寄存器开发)

目录 1. 特性1.1 框图1.2 比较器输入信号SEL1.3 比较器滞回选择HYST1.4 比较器的输出1.5 LOCK机制 2. 编程2.1 初始化步骤2.2 举例 STM内部的比较器是模拟量的比较器,其与APB2时钟同步,在RCC时钟控制器中没有COMx时钟使能标志位,其时钟的使能…

前端自学要多久?自学前端一般多久可以找到差不多的工作?

好程序员今天给各位同学分享自学前端的高效率路径,最快4个月,平均6个月! 一、html, CSS (1月) 1.基本语法, 2.做2-3个项目实战 3.刷面试题 二、JavaScript (1.5月) 1.基本语法 2.实际案例练习融合HTML, Css项目实战 3.刷题面试题 三、Vue/Rea…

Java 高级应用-多线程-(三)实现 Callable 接口与使用线程池创建线程

实现 Callable 接口 • 与使用 Runnable 相比, Callable 功能更强大些 – 相比 run()方法,可以有返回值 – 方法可以抛出异常 – 支持泛型的返回值(需要借助 FutureTask 类,获取返回结果) • Future 接口(…

游戏研发项目管理

基于阶段模式进行游戏新产品研发过程,以及基于这种研发过程Leangoo 领歌提供的项目模板。 二、游戏产品开发流程 通常开发一款新游戏大体上会按照如下流程来进行: 1) 概念阶段 – Concept 主策根据产品创意,确定游戏策划草案&a…

C++中的内存空间管理详解【C++】

文章目录 C/C内存分布C语言中动态内存管理方式:malloc/calloc/realloc/freeC内存管理方式new/delete操作内置类型new和delete操作自定义类型 operator new与operator delete函数重载operator new与operator deletenew和delete的实现原理内置类型自定义类型 定位new表…

使用tomcat可能遇到的问题

问题一:窗口一闪而过 如果双击startup.bat,启动tomcat,命令窗口一闪而过;或者用命令窗口执行startup.bat命令,未能启动tomcat,而是提示下面的文字; 说明可能是java的环境变量配置错误&#xf…

让ChatGPT谈谈科技发展

ChatGPT谈科技发展 讲讲科技发展的那些事儿谈谈ChatGPT对科技发展的影响谈谈你对ChatGPT的看法ChatGPT对科技发展的负面影响ChatGPT的存在是利是弊?关于全国科技者工作日 讲讲科技发展的那些事儿 谈谈ChatGPT对科技发展的影响 谈谈你对ChatGPT的看法 ChatGPT对科技发…

pdf怎么合并成一个文件?高效工具分享

PDF是一种非常常用的文档格式,许多人经常需要合并多个PDF文件为一个文件。这是因为有时候我们需要将多个PDF文件打包成一个文件,以便于共享或归档。在本文中,我们将介绍如何使用电脑或手机合并PDF文件。 以下是常见的合并PDF的软件&#xff1…

以太坊Layer 2即将爆发!加密巨头入场布局,或将迎来“百链大战”!

眼下,以太坊Layer 2发展势头强劲。在数十条Rollup Layer 2异彩纷呈之际,Coinbase、ConsenSys等加密巨头也开始下场参与竞争,部署原生Layer 2网络。 截至2022年底,Layer 2解决方案的日均交易数在持续增加,甚至超过了以太…

牛客网语法篇刷题(C语言) — 基本类型

🤩本文作者:大家好,我是paperjie,感谢你阅读本文,欢迎一建三连哦。 🥰内容专栏:这里是《C语言—语法篇》专栏,笔者用重金(时间和精力)打造,基础知识一网打尽,…

如何制作插件使用案例?

UE5 插件开发指南 前言0 示例角色蓝图1测试关卡2 扩展物品数据3 小结前言 作为一款插件,我们一定想要开发者拿到之后立即知道如何使用,所以我们需要制作插件使用案例,最好搭配相应的文档教会插件的使用者如何使用插件,如何对插件的功能进行扩展。为了达到这样的目标,我们…

TOPSIS(优劣解距离法)【附Python实现代码及可视化代码】

目录 一、指标正向化 1.极小型指标->极大型指标 2.中间型指标->极大型指标 3.区间型指标->极大型指标 二、标准化处理 三、计算得分并归一化(不带权重) 四、计算得分并归一化(带权重) 熵权法 1)判断输入的矩阵是否存在负数 2)计算第j…

通过 Wacom 的 Project Mercury 提高远程办公效率

过去几年中,我们的工作方式发生了翻天覆地的变化。疫情加快了对远程办公和协作的采纳,导致人们更加依赖技术来联系团队和提高工作效率。 但是,那些依靠专门硬件和软件来完成工作的创作者呢?艺术家、设计师和开发人员需要使用专门…

34 KVM管理设备-管理虚拟磁盘

文章目录 34 KVM管理设备-管理虚拟磁盘34.1 概述34.2 操作步骤 34 KVM管理设备-管理虚拟磁盘 34.1 概述 虚拟磁盘类型主要包含virtio-blk、virtio-scsi、vhost-scsi等。virtio-blk模拟的是一种block设备,virtio-scsi和vhost-scsi模拟的是一种scsi设备。 virtio-b…

window部署redis集群

1.下载Redis-x64-3.2.100.zip 下载网址:https://github.com/microsoftarchive/redis 百度网盘下载:百度网盘 请输入提取码 提取码:j2js redis版本一定要大于3.0,原因:windows暂不支持redis-cli创建集群,…