关于跨域访问

article/2025/10/6 3:36:57

1 概念

2 案例

3 解决

4 实现

5 什么是跨域问题


示意图

1 概念

跨域访问,是指从一个域名的网页去请求另一个域名的资源。比如从 www.baidu.com 页面去请求 ww w.google.com 的资源。
但是一般情况下不能这么做跨域访问,因为有浏览器的 同源策略 存在,这是浏览器对 JavaScript 施加的安全限制。
同源策略 简单的说,就是 A 网站页面访问 B 网站的资源受限(跨域访问),除非 A B 同源
同源 是指三个相同:
  • 协议相同
  • 域名相同
  • 端口相同
只有有任何一个地方不同,就认为是跨域。 如果非同源(跨域)会受到 AJAX 请求不能发送
我们在项目中,需要设置对跨域访问的支持,是因为项目的架构需要,例如:
  • 公司内部有多个不同的子系统,例如AB,分别部署在不同的服务器上,其域名也不相同
  • 由于公司内部的数据需要,现在A系统中,跨域访问B系统,从而获取内部的一些信息资源

2 案例

1. 创建 springboot_html 项目
  • pom.xml
<dependency> 
<groupId>org.springframework.boot</groupId> 
<artifactId>spring-boot-starter-web</artifactId> 
</dependency> 
<dependency> 
<groupId>org.springframework.boot</groupId> 
<artifactId>spring-boot-starter-thymeleaf</artifactId> 
</dependency>
  • hello.html

 

  •  HellController.java

 2. 创建springboot_ajax项目

  • AjaxController.java

 3. 访问springboot_html项目的index.html

 4. 点击按钮发送ajax请求访问springboot_ajax项目的接口

 原因:CORS 头缺少 'Access-Control-Allow-Origin' :

3 解决

通过 CORS 跨域资源共享方案解决问题
3.1 概念
CORS(Cross-origin resource sharing) ,是一个 W3C 标准,全称是 " 跨域资源共享 "
  • 整个CORS通信过程,都是浏览器自动完成,不需要用户参与。
  • 对于开发者来说,CORS通信与同源的AJAX通信没有差别,代码完全一样。
  • 浏览器一旦发现AJAX请求跨源,就会自动添加一些附加的头信息。(Origin)
  • 有时还会多出一次附加的请求,但用户不会有感觉。(options方式的请求)
3.2 分类
浏览器将 CORS 请求分成两类:
  • 简单请求(simple request)
  • 非简单请求(not-so-simple request)
1. 简单请求
请求方法是 GET POST HEAD
Content-Type 只包含以下三种情况
  • application/x-www-form-urlencoded
  • multipart/form-data
  • text/plain
注意,只要不能同时满足上面两个条件,就属于非简单请求。
2. 非简单请求
非简单请求是那种对服务器有特殊要求的请求,比如请求方法是 PUT DELETE ,或者 Content-Type 字段 的类型是application/json
非简单请求的 CORS 请求,会在正式通信之前,增加一次 HTTP 查询请求,称为 " 预检 " 请求(preflight)。
浏览器先询问服务器,当前网页所在的域名是否在服务器的许可名单之中,以及可以使用哪些 HTTP 动词 和头信息字段。只有得到肯定答复,浏览器才会发出正式的XMLHttpRequest 请求,否则就报错 。

4 实现

1. 编写配置类,配置了跨域访问的属性

5 什么是跨域问题


1. 跨域,指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器施加的安全限制。最简单的说就是从当前域名的网站下不能请求非同源的地址

所谓同源是指,域名,协议,端口均相同,只要有一个不同,就是跨域。

请特别注意:跨域问题是针对于浏览器的,因为需要解决的跨域问题,是浏览器施加的安全限制所造成的。

2. 跨域是指跨域名的访问,有三种情况:

  1. 域名不同的跨域。
  2. 域名相同、端口不同的跨域。
  3. 二级域名不同的跨域。


3. 举例说明:

http://www.123.com/index.html 调用 http://www.123.com/server.php (非跨域)

http://www.123.com/index.html 调用 http://www.456.com/server.php (主域名不同:123/456,跨域)

http://abc.123.com/index.html 调用 http://def.123.com/server.php (子域名不同:abc/def,跨域)

http://www.123.com:8080/index.html 调用 http://www.123.com:8081/server.php (端口不同:8080/8081,跨域)

http://www.123.com/index.html 调用 https://www.123.com/server.php (协议不同:http/https,跨域)

请注意:localhost和127.0.0.1虽然都指向本机,但也属于跨域。

4. 跨域会阻止什么操作?

浏览器是从两个方面去做这个同源策略的

一是:针对接口的请求 

二是:针对Dom的查询

这点就能够很好的防止别人把你经常访问的网页嵌入到iframe中来获取你的个人信息,比如a页面中嵌入了iframe,src为不同源的b页面,则在a中无法操作b中的dom,也没有办法改变b中dom中的css样式。


http://chatgpt.dhexx.cn/article/6JfQG6Ay.shtml

相关文章

什么是跨域?如何实现跨域访问?

跨域是指不同域名之间相互访问。 JavaScript同源策略的限制&#xff0c;A域名下的JavaScript无法操作B或是C域名下的对象 实现&#xff1a; 1、JSONP跨域&#xff1a;利用script脚本允许引用不同域下的js实现的&#xff0c;将回调方法带入服务器&#xff0c;返回结果时回调 2、…

跨域访问

跨域访问是什么 同源策略 1995年&#xff0c;同源政策由Netscape公司引人浏览器。目前&#xff0c;所有刘览器都实行这个政策。同源政策的目的&#xff0c;是为了保证用户信息的安全&#xff0c;防止恶意的网站窃取数据。随着互联网的发展&#xff0c;“同源政策”越来越严格…

朴素贝叶斯分类器python_python实现高斯朴素贝叶斯分类器

在这篇文章中,我们将使用我最喜欢的机器学习库scikit-learn在Python中实现朴素贝叶斯分类器。接下来,我们将使用经过训练的朴素贝叶斯(监督分类法)模型来预测人口收入。 在朴素贝叶斯分类器的文章中我们讨论了贝叶斯定理,我们希望你对贝叶斯定理的基础知识有一定的了解,如果…

贝叶斯分类器(matlab)

目标 下表由雇员数据库的训练数据组成。数据已泛化。例如&#xff0c;age“3135”表示年龄在31~35之间。对于给定的行&#xff0c;count表示department、status、age和salary在该行具有给定值的元组数。 DepartmentStatusAgeSalaryCountSalesSenior31-3546K-50K30Salesjunior…

Python实现朴素贝叶斯分类器

朴素贝叶斯分类器 文章目录 朴素贝叶斯分类器一、贝叶斯分类器是什么&#xff1f;贝叶斯判定准则朴素贝叶斯分类器举个栗子 二、相关代码1.数据处理2.生成朴素贝叶斯表&#xff08;字典&#xff09;关于如何判断属性的连续或离散性 根据朴素贝叶斯表计算预测标签 总结 一、贝叶…

贝叶斯分类器 (下)

目录 错误率与风险 朴素贝叶斯分类器 平滑&#xff1a;拉普拉斯修正 半朴素贝叶斯分类器 错误率与风险 书接上回&#xff0c;我们讲到最大后验概率&#xff0c;我们期望把概率最大时对应的属性&#xff0c;当做它最终的结果。我们自然也会思考&#xff0c;这样做准不准&…

贝叶斯分类器算法原理

目录 1.1&#xff0c;什么是朴素贝叶斯 1.2&#xff0c;极大似然估计 1.3&#xff0c;朴素贝叶斯分类器 1.4&#xff0c;朴素贝叶斯算法就程 1.5&#xff0c;朴素贝叶斯的优缺点 1.1&#xff0c;什么是朴素贝叶斯 在所有的机器学习分类算法中&#xff0c;朴素贝叶斯和其他…

【贝叶斯分类3】半朴素贝叶斯分类器

文章目录 1. 朴素贝叶斯分类器知识回顾1.1 类别&#xff0c;特征1.2 风险&#xff0c;概率1.3 类条件概率 2. 半朴素贝叶斯分类器学习笔记2.1 引言2.2 知识卡片2.3 半朴素贝叶斯分类器2.4 独依赖估计2.4.1 简介2.4.2 SPODE(超父独依赖估计)2.4.3 AODE(平均独依赖估计)2.4.4 TAN…

【贝叶斯分类2】朴素贝叶斯分类器

文章目录 1. 贝叶斯决策论回顾1.1 分类原理1.2 贝叶斯分类器1.3 P(c|x)1.4 计算公式1.5 极大似然估计 2. 朴素贝叶斯分类器学习笔记2.1 引言2.2 知识卡片2.3 朴素贝叶斯分类器2.4 拉普拉斯平滑 3. 朴素贝叶斯分类器拓展3.1 数据处理3.2 收集其他资料 1. 贝叶斯决策论回顾 1.1 …

朴素贝叶斯分类器

前知识了解&#xff1a; 贝叶斯决策论是概率框架下实施决策的基本方法。 贝叶斯定理&#xff1a; 贝叶斯定理是由果溯因的思想&#xff0c;当知道某件事情的结果后&#xff0c;由结果推断出这件事是由各种原因导致的概率为多少。极大似然估计&#xff1a; 朴素贝叶斯分类器…

贝叶斯分类器matlab实现

用matlab模拟最小错误率贝叶斯分类器与最小风险分类器&#xff0c;效果个人感觉还算能看的下去^_^ 注意&#xff1a;如果对实验原理还不算太懂&#xff0c;可以看其他大牛的博客或者看书&#xff0c;不管怎么样概率论知识是前提&#xff0c;不如乘法定理&#xff0c;条件概率&…

机器学习-贝叶斯分类器

https://www.toutiao.com/a6684876999611122187/ 2019-04-28 17:36:54 目录&#xff1a; 1.贝叶斯分类器的基础 2.朴素贝叶斯分类器 3.朴素贝叶斯分类实例 4.关于朴素贝叶斯容易忽略的点 5.朴素贝叶斯分类器的优缺点 1. 摘要 贝叶斯分类器是一类分类算法的总称&#xf…

贝叶斯分类器(Bayes Classifier)

一、贝叶斯定理 1、背景&#xff1a; 贝叶斯定理也称贝叶斯推理&#xff0c;早在18世纪&#xff0c;英国学者贝叶斯(1702&#xff5e;1763)曾提出 引用&#xff1a;百度百科 贝叶斯定理是关于随机事件A和B的条件概率&#xff08;或边缘概率&#xff09;的一则定理。其中P(A|B)…

实验五 贝叶斯分类器(模式识别与机器学习)

目录 实验一 离散型数据的朴素贝叶斯分类 实验步骤&#xff1a; NBtrain.m NBtest.m main.m 实验二 连续型数据的朴素贝叶斯分类 实验步骤: naiveBayestrain.m navieBayestest.m main.m 实验一 离散型数据的朴素贝叶斯分类 data数据集中含有625个样本&#xff0c;每个样…

贝叶斯分类器详解

文章目录 一、贝叶斯简介二、贝叶斯决策论三、极大似然估计例题解析 四、朴素贝叶斯分类器例题解析 五、半朴素贝叶斯分类器 一、贝叶斯简介 简介&#xff1a;贝叶斯分类器是一类分类算法的总称&#xff0c;这类算法均以贝叶斯定理为基础&#xff0c;故统称为贝叶斯分类器。而…

机器学习(六)——贝叶斯分类器

贝叶斯分类器是一类分类算法的总称&#xff0c;均以贝叶斯定理为理论基础 一、预备知识—贝叶斯决策论 1.公式 \qquad 贝叶斯决策论是概率框架下的实施决策的基本方法。对于分类任务来说&#xff0c;在所有相关概率都已知的理想情况下&#xff0c;贝叶斯决策论考虑如何基于概率…

机器学习——贝叶斯分类器

这里写目录标题 1.贝叶斯分类器属于生成式模型2.贝叶斯定理3.朴素贝叶斯分类器3.1朴素贝叶斯分类器中的数学模型3.2分类器的分类准则 1.贝叶斯分类器属于生成式模型 对于数据的判别分类有两种策略模型&#xff1a;判别式模型和生成式模型 判别式模型 : 逻辑回归、决策树、支持…

贝叶斯分类器原理——学习笔记

贝叶斯分类器原理 简介一、逆概率推理与贝叶斯公式1、确定性推理与概率推理2、贝叶斯公式 二、贝叶斯分类的原理三、概率估计1、先验概率的估计2、类条件概率的估计 四、贝叶斯分类的错误率五、常用贝叶斯分类器1、最小错误率贝叶斯分类器2、最小风险贝叶斯分类器3、朴素贝叶斯…

机器学习-贝叶斯分类器(附Python代码)

1. 贝叶斯原理 Naive Bayes 官方网址&#xff1a; https://scikit-learn.org/stable/modules/naive_bayes.html GitHub地址&#xff1a;https://github.com/gao7025/naive_bayes.git 贝叶斯分类是以贝叶斯定理为基础的一种分类算法&#xff0c;其主要思想为&#xff1a;先验…

chrome插件开发入门实战——CSDN免登陆拷贝、免关注查看

官方资料 docextensions官方chrome-extensions-samples 实战CSDN插件&#xff08;V3&#xff09; 功能 CSDN&#xff1a; 复制代码免登陆&#xff1b;CSDN&#xff1a; 免关注博主看文章&#xff1b;CSDN&#xff1a; 替换CSDN代码拷贝按钮&#xff0c;登陆也不用CSDN复制按…