1 概念
2 案例
3 解决
4 实现
5 什么是跨域问题
- 协议相同
- 域名相同
- 端口相同
只有有任何一个地方不同,就认为是跨域。 如果非同源(跨域)会受到 AJAX 请求不能发送
- 公司内部有多个不同的子系统,例如A和B,分别部署在不同的服务器上,其域名也不相同
- 由于公司内部的数据需要,现在A系统中,跨域访问B系统,从而获取内部的一些信息资源
- pom.xml
- hello.html


- HellController.java

2. 创建springboot_ajax项目
- AjaxController.java

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

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

- 整个CORS通信过程,都是浏览器自动完成,不需要用户参与。
- 对于开发者来说,CORS通信与同源的AJAX通信没有差别,代码完全一样。
- 浏览器一旦发现AJAX请求跨源,就会自动添加一些附加的头信息。(Origin)
- 有时还会多出一次附加的请求,但用户不会有感觉。(options方式的请求)
- 简单请求(simple request)
- 非简单请求(not-so-simple request)
- application/x-www-form-urlencoded
- multipart/form-data
- text/plain
注意,只要不能同时满足上面两个条件,就属于非简单请求。

所谓同源是指,域名,协议,端口均相同,只要有一个不同,就是跨域。
请特别注意:跨域问题是针对于浏览器的,因为需要解决的跨域问题,是浏览器施加的安全限制所造成的。
2. 跨域是指跨域名的访问,有三种情况:
- 域名不同的跨域。
- 域名相同、端口不同的跨域。
- 二级域名不同的跨域。
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样式。
到此这篇跨域访问是什么意思啊(跨域访问是什么意思啊)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/bcyy/45206.html