首页 > 其他分享 >跨域以及跨域配置

跨域以及跨域配置

时间:2024-03-22 12:58:22浏览次数:26  
标签:截图 浏览器 请求 以及 配置 预检 方法 跨域

1、什么跨域

        首先,在前后端没有分离项目,例如jsp、php,前后台代码没有实现物理上的分离。不存在跨域问题。前后端分离后,前后端的地址域名不同,而同源策略导致浏览器会拦截a地址访问b地址请求(a地址通过浏览器访问b地址,叫跨域COSR),其中同源策略设计出于安全的考虑。前后分离之后就会产生跨域问题,为了解决这个问题,浏览器在发起跨域请求的时候会先发送一个预检请求(option请求),服务器通过设置CORS 来指定允许跨域请求,并指定请求源以及方法 和 请求头等信息。

2、预检请求

需预检的请求要求必须首先使用 OPTIONS 方法发起一个预检请求到服务器,以获知服务器是否允许该实际请求。预检请求 的使用,可以避免跨域请求对服务器的用户数据产生未预期的影响。

     

  • Access-Control-Request-Method:该字段是必须的,用来列出浏览器的 CORS 请求会用到哪些 HTTP 方法,

  • Access-Control-Request-Headers:该字段是一个逗号分隔的字符串,指定浏览器 CORS 请求会额外发送的头信息字段,

  • access-control-allow-origin:在上述例子中,表示 https://xxx.cn 可以请求数据,也可以设置为* 符号,表示统一任意跨源请求

  • Access-Control-Max-Age 该字段可选,用来指定本次预检请求的有效期,单位为秒。在有效期间,不用发出另一条预检请求

例如下面截图

3、跨域配置

 如果你的前端是通过nginx 转发请求你的后端接口,nginx也要配置跨域,如下面截图

然后在后端项目中进行跨域配置

方法一、 实现WebMvcConfigurer 接口跨域配置的方法,截图如下

方法二 、通过过滤器实现,截图如下

方法三、通过注解实现,如下截图

注解可以定义在方法和类,可以实现最小颗粒度的控制。

方法四 、通过配置FilterRegistrationBean实现,截图如下

此方法是通过配置spring过滤器实现,而不是servlet

标签:截图,浏览器,请求,以及,配置,预检,方法,跨域
From: https://blog.csdn.net/fangxiang2008/article/details/136915706

相关文章

  • Spring源码:手写Bean配置
    文章目录一、背景二、解决1、基于xml配置2、基于注解1)定义相关注解2)扫描包下的所有被@Componment修饰的Java类,生成BeanDefinition,注册到BeanFactory三、优化四、总结1、注解2、xml配置一、背景下面的代码,无论是IOC,DI,都需要创建BeanDefinition,设置构造器、初始方......
  • CLion配置问题
    CLion配置远程服务器,本地同步云端笔者也是边学边配,随时更新,欢迎大家讨论交流首先CLion是支持直接SSH打开云端服务器的,类似于vscode,但mentor说那样在没网的时候没法查看代码,而且即使这样CLion也会拉下来一份代码,只是不知道存在哪,不可控,所以采用同步的方式Tips:用远端的Toolcha......
  • C# 配置七牛云
    先要下载一个MQiniu.CoreSdk包ak、sk为七牛云的秘钥,在个人中心查看publicIActionResultUpload(List<IFormFile>formFiles){//先上传到本地,才能上传到七牛云,上传完成后本地的文件可删除varres=Task.Run(()=>{//ak修改为自己的accessKey......
  • nginx.conf常用配置
    server{listen9001;//使该服务器块监听在TCP端口9001上listen9000sslhttp2;//使该服务器块在TCP端口9000上监听HTTPS请求,并启用HTTP/2协议。server_namesiyuan.terwergreen.com;//定义该服务器块的服务器名称为siyuan.terwergreen.......
  • Windows VS2019+opencv配置
    本文是VS2019和opencv4.5.5版本1、配置环境变量(可能用户变量也需要配置)2、打开VS2019添加新属性表,分别为Debud和Release添加3、选择新建属性表的属性,进行下图步骤注意:debug模式和Release模式配置不一样,需要单独配置,debug模式附加依赖项比Release模式多了一个“d”,De......
  • PHP+MySQL开发组合:智慧同城便民信息小程序源码系统 带完整的安装代码包以及安装部署教
    当前,城市生活的节奏日益加快,人们对各类便民信息的需求也愈发迫切。无论是寻找家政服务、二手交易,还是发布租房、求职信息,一个高效、便捷的信息平台显得尤为重要。传统的信息发布方式往往存在信息更新不及时、查找困难等问题,无法满足现代都市人的需求。罗峰给大家分享一款智慧同......
  • dremio 官方对于软件版ha 以及扩展部署的参考方案
    关于dremio实际大规模部署的记录,内容来自官方文档dremio组件架构参考图此图包含了dremio的ha以及扩展,包含了主备Coordinator(故障转移的)提高查询性能的Coordinator,以及进行实际查询的执行器此部署中依赖lb,共享存储(nfs类的),zk(协调选举的),分布式存储(当然也可以使用共享存储,但......
  • QT6 android下配置文件打包到APK
    一.遇到问题   用QT做android开发,生成的apk文件默认不包含程序配置文件和png文件,导致程序在android上无法读取必要的参数和logo,本文主要解决这个问题,并详细讲述QTandroid的apk程序打包流程。二.APK打包流程1.如何生成APK  当我们的工程的构建套件选择Android编译器......
  • Maven国内镜像地址配置(整理了最新可用的源)
    在maven根目录下的settings.xml文件修改maven配置,首先是本地仓库配置其次在换国内镜像源,这里给大家整理了最新可用的镜像源阿里<mirror><id>alimaven</id><name>aliyunmaven</name><url>http://maven.aliyun.com/nexus/content/groups/public/</url><......
  • RS485Modbus转Profinet网关多通道轮询配置方法
    RS485Modbus转Profinet网关(XD-MDPN100)有效地转换并实现多通道轮询,可以提高系统的稳定性和效率。在现代工业自动化控制系统中,RS485Modbus转Profinet网关(XD-MDPN100)能够连接不同类型的设备和传感器,并实现数据的快速传输和处理。打开博图加载PLC,在这里使用的是1200PLC,配置PLC的IP......