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

前后端联调跨域问题

文章目录

    • 什么是同源策略
    • 如何判断是否同源?
    • 跨域资源共享(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 {@Overridepublic void addCorsMappings(CorsRegistry registry) {registry.addMapping("/**") .allowedOrigins("*").allowedMethods("POST", "GET", "PUT", "DELETE").allowCredentials(true).allowedHeaders("*").maxAge(3600);}
}

相关文章:

前后端联调跨域问题

文章目录 什么是同源策略如何判断是否同源?跨域资源共享(CORS)如何解决跨域问题 什么是同源策略 同源策略限制了从同一个源加载的文档或脚本如何与来自另一个源的资源进行交互。这是一个用于隔离潜在恶意文件的重要安全机制。 如何判断是否同源? 如果…...

day11 - 手写数字笔迹细化

手写数字笔迹细化 对于手写数字识别实验中,经常会遇到因为笔迹较粗导致误识别的情况,所以我们通常会先将笔迹进行细化,笔迹变细以后,数字的特征会更明显,后续进行识别的准确率就会更高。 例如数字7 和 1 &#xff0c…...

C++ QT QDBus基操

以下是使用QDBus进行跨进程通信的具体用法&#xff1a; 1. 创建DBus服务 在服务端进程中&#xff0c;需要创建一个DBus服务&#xff0c;并注册DBus对象。示例代码如下&#xff1a; #include <QDBusConnection> #include <QDBusMessage> #include <QDBusInterf…...

STM32的SPI外设

文章目录 1. STM32 的 SPI 外设简介2. STM32 的 SPI 架构剖析2.1 通讯引脚2.2 时钟控制逻辑2.3 数据控制逻辑2.4 整体控制逻辑 3. 通讯过程4. SPI 初始化结构体详解 1. STM32 的 SPI 外设简介 STM32 的 SPI 外设可用作通讯的主机及从机&#xff0c;支持最高的 SCK 时钟频率为 …...

VMWare ESXI6.7创建虚拟机

VMware ESXi&#xff1a;专门构建的裸机 管理程序 首先开启ESXI主机 登录ESXI 打开浏览器输入物理机ip&#xff0c;输入账号密码进行登录 创建虚拟机 选择创建类型 创建RedHat7.6 选择存储类型和数据存储 仅一个存储&#xff0c;直接点下一页即可 配置虚拟机硬件和虚拟机附…...

TensorFlow 1.x学习(系列二 :4):自实现线性回归

目录 线性回归基本介绍常用的op自实现线性回归预测tensorflow 变量作用域模型的保存和加载 线性回归基本介绍 线性回归&#xff1a; w 1 ∗ x 1 w 2 ∗ x 2 w 3 ∗ x 3 . . . w n ∗ x n b i a s w_1 * x_1 w_2 * x_2 w_3 * x_3 ... w_n * x_n bias w1​∗x1​w2​∗…...

Openwrt折腾记6-网络摄像头

前言&#xff1a; 前几天买了个电视机上的摄像头&#xff0c;但是估计是电视配置或软件不好&#xff0c;视频通话太卡顿。今天把它装的极路由4的usb上了。由于当初挑的是电视免驱的&#xff0c;所以我猜想是通用的芯片。 调查驱动 LINUX uvc支持型号的列表里 http://www.ide…...

C++判断大端小端

C判断大端小端 1. 基础知识 大端小端其实表示的是数据在存储器中的存放顺序。 大端模式&#xff1a;数据的高字节存放在内存的低地址中&#xff0c;而低字节则存放在高地址中。地址由小到大增加&#xff0c;数据则从高位向低位存放&#xff0c;这种存放方式符合人类的正常思维…...

K8S RBAC之Kubeconfig设置用户权限,不同的用户访问不同的namespace

1.CA签发客户端证书 检查证书是否存在 # ll /etc/kubernetes/pki/ 总用量 48K -rw-r----- 1 kube root 2.1K 3月 2 16:44 apiserver.crt -rw------- 1 kube root 1.7K 3月 2 16:44 apiserver.key -rw-r----- 1 kube root 1.2K 3月 2 16:44 apiserver-kubelet-client.cr…...

CodeForces..学习读书吧.[简单].[条件判断].[找最小值]

题目描述&#xff1a; 题目解读&#xff1a; 给定一组数&#xff0c;分别是 “时间 内容”&#xff0c;内容分为00&#xff0c;01&#xff0c;10&#xff0c;11四种&#xff0c;求能够得到11的最小时间。 解题思路&#xff1a; 看似00&#xff0c;01&#xff0c;10&#xff0…...

灵活使用Postman环境变量和全局变量,提高接口测试效率!

目录 前言&#xff1a; 环境变量和全局变量的概念 环境变量和全局变量的使用方法 1. 定义变量 2. 使用变量 环境变量和全局变量的实例代码 变量的继承和覆盖 变量的动态设置 总结&#xff1a; 前言&#xff1a; Postman是一个流行的API开发和接口测试工具&#xff0c;…...

Springboot+Vue3 整合海康获取视频流并展示

目录 1.后端 1.1 导入依赖 1.2 代码实战 2.前端 2.1 首先安装海康的web插件&#xff0c;前端vue3代码如下&#xff1a; 1.后端 1.1 导入依赖 <dependency><groupId>com.hikvision.ga</groupId><artifactId>artemis-http-client</artifactId&g…...

Linux——进程退出

目录 一.进程退出时有三种选择&#xff1a; 1.1 echo $?命令&#xff1a; 功能&#xff1a; 打印距离现在最近一次执行某进程的退出码 例2代码&#xff1a; 例3&#xff1a; 例4代码&#xff1a; 1.3 进程运行过程中可能会出现的错误种类&#xff1a; 二.总结&#xff…...

组长给组员派活,把组长自己的需求和要改的bug派给组员,合理吗?

组长把自己的工作派给手下&#xff0c;合理吗&#xff1f; 一位程序员问&#xff1a; 组长给他派活&#xff0c;把组长自己的需求或者要改的bug派给他。组长分派完需求之后&#xff0c;他一个人干两个项目&#xff0c;组长却无所事事&#xff0c;这样合理吗&#xff1f; 有人说…...

Spring注解开发——bean的作用范围与生命周期管理

文章目录 1.bean管理1.1 bean作用范围Scope注解 1.2 bean生命周期PostConstructPreDestroy 2.小结 1.bean管理 1.1 bean作用范围 Scope注解 不写或者添加Scope(“singleton”)表示的是单例 如何配置多例&#xff1f; 在Scope(“prototype”)表示的是多例 1.2 bean生命周…...

C++ > Cmake

目录 编译器 多文件编译与链接 Makefile构建系统 编译器 厂商 C C GNU gcc g main.cpp #include <cstdio>int main() {printf("Hello, world!\n");return 0; }编译器, 是一个根据源代码生成机器码的程序 g main.cpp -o a.out调用编译器程序g, 读…...

Spring的Bean的生命周期

Spring的Bean的生命周期 Spring的Bean的生命周期 Spring的Bean的生命周期 Spring的Bean的生命周期包括以下阶段&#xff1a; &#xff08;1&#xff09;实例化Instantiation&#xff08;2&#xff09;填充属性Populate properties&#xff08;3&#xff09;处理Aware接口的回调…...

在树莓派上搭建WordPress博客网站,并内网穿透发布到公网

✨个人主页&#xff1a;bit me&#x1f447; 目 录 &#x1f43e;概述&#x1f490;安装 PHP&#x1f338;安装MySQL数据库&#x1f337;安装 Wordpress&#x1f340;设置您的 WordPress 数据库&#x1f339;设置 MySQL/MariaDB&#x1f33b;创建 WordPress 数据库 &#x1f33…...

跨平台C++ Qt数据库管理系统设计与实战:从理论到实践的全面解析

跨平台C Qt数据库管理系统设计与实战&#xff1a;从理论到实践的全面解析 一、引言&#xff08;Introduction&#xff09;1.1 数据库管理系统的重要性&#xff08;Importance of Database Management Systems&#xff09;1.2 C和Qt在数据库管理系统中的应用&#xff08;Applica…...

Ubuntu crontab定时任务

1. crontab 相关的命令&#xff1a; 安装&#xff1a;apt-get install cron 启动&#xff1a;service cron start 重启&#xff1a;service cron restart 停止&#xff1a;service cron stop 检查状态&#xff1a;service cron status 查询cron可用的命令&#xff1a;service …...

从火柴盒到AI:探索MENACE的数字化旅程

在计算机科学的历史中,有许多有趣的实验和发明,其中之一便是由唐纳德米奇(Donald Michie)设计的“火柴盒计算机”(Matchbox Educable Noughts and Crosses Engine,简称MENACE)。这个装置使用了火柴盒和彩色珠子来模拟人工智能,教机器玩井字游戏(Tic-Tac-Toe)。本文将…...

如何0失败部署ChemCrow?从环境配置到功能落地的全景指南

如何0失败部署ChemCrow&#xff1f;从环境配置到功能落地的全景指南 【免费下载链接】chemcrow-public Chemcrow 项目地址: https://gitcode.com/gh_mirrors/ch/chemcrow-public ChemCrow是一款基于Langchain构建的开源化学智能工具包&#xff0c;集成了RDKit化学工具、…...

Netty-learning-example IoT服务器开发:手撕MQTT协议实现高性能物联网平台

Netty-learning-example IoT服务器开发&#xff1a;手撕MQTT协议实现高性能物联网平台 【免费下载链接】netty-learning-example :egg: Netty实践学习案例&#xff0c;见微知著&#xff01;带着你的心&#xff0c;跟着教程。我相信你行欧。 项目地址: https://gitcode.com/gh…...

物联网设备搜索终极指南:Shodan与Censys实战应用

物联网设备搜索终极指南&#xff1a;Shodan与Censys实战应用 在当今万物互联的时代&#xff0c;物联网设备搜索已经成为网络安全领域的关键技能。通过Shodan和Censys这两大专业工具&#xff0c;你可以轻松发现连接到互联网的各种设备&#xff0c;从智能摄像头到工业控制系统&a…...

返回多个值:让函数输出更丰富又不复杂

一般来说&#xff0c;Python允许函数返回多个值&#xff0c;实质是返回一个元组&#xff08;tuple&#xff09;。调用方可直接通过拆包获得各值&#xff0c;这在数据处理与建模中非常常见。实战案例&#xff1a;假设你要实现一个数据分析函数&#xff0c;既返回最大值&#xff…...

Python数据标准化全攻略:从原理到实践

在机器学习和数据分析领域&#xff0c;数据标准化是一项至关重要的预处理步骤。它能够将不同尺度的特征统一到相同的范围内&#xff0c;帮助模型更好地学习数据特征&#xff0c;提高训练效率和模型性能。本文将详细介绍数据标准化的概念、常用方法以及在Python中的实现方式。一…...

[CD326(EpCAM)] 靶点技术深度解析:分子机制、抗体药物开发与未来趋势

在生物制药与细胞生物学研究领域&#xff0c;靶点的选择与机制解析是药物研发的基石。CD326&#xff08;EpCAM&#xff0c;上皮细胞黏附分子&#xff09; 作为一种广泛表达于上皮细胞表面的I型跨膜糖蛋白&#xff0c;不仅是上皮组织稳态维持的关键因子&#xff0c;更是当前抗体…...

Windows运行库终极解决方案:VisualCppRedist AIO完全指南

Windows运行库终极解决方案&#xff1a;VisualCppRedist AIO完全指南 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过这种情况&#xff1a;满怀…...

解密Cursor Free VIP:AI编程助手无限使用实战指南

解密Cursor Free VIP&#xff1a;AI编程助手无限使用实战指南 【免费下载链接】cursor-free-vip [Support 0.45]&#xff08;Multi Language 多语言&#xff09;自动注册 Cursor Ai &#xff0c;自动重置机器ID &#xff0c; 免费升级使用Pro 功能: Youve reached your trial r…...

从“只会聊天“到“全能员工“:2026年你需要了解的AI黑话(收藏版:小白程序员必备)

AI不再是一个聊天框。它已经进化成你的数字化同事。而你需要学会和它相处的"行话"。 引言&#xff1a;你的AI同事已经到岗还记得2023年人们第一次用ChatGPT的时候吗&#xff1f;大家的反应是&#xff1a;"哇&#xff0c;AI能写诗和画画&#xff01;"然后就…...