web开发中的跨域问题
一.为什么会有跨域问题?
1.浏览器限制
2.跨域
域名,端口,协议任意一个不相同;
3.XHR(XMLHttpRequest)请求
满足以上三个条件才会触发跨域,任意一个不满足就不算是跨域;
二.解决跨域问题的方法
针对上边三中种方式,让其不满足上边的条件即可;
1.浏览器解除安全设置,这种方式需要修改客户端的浏览器,另外此种方式也不安全,不方便也不建议这样设置;
2.将后端服务使用相同的域名,端口,协议;将后端的服务暴露在相同的域名,端口,协议下就能解决该问题;
此处有两种方式进行解决,这里涉及到后端服务器的调用流程:
方法1:web server返回特定的http header,告诉浏览器,允许该域名访问;
Access-Control-Allow-Methods:对应的方法,如(GET),*允许所有
Access-Control-Allow-Origin:对应的协议,域名,端口,如(http://www.wentjiang.com),*允许所有,但是不能使用cookie,使用cookie时,需要写对应的origin
Spring应用直接使用@origincors
方法2:在nginx或者apache对后端服务做映射(反向代理),让浏览器直接通过不跨域的域名直接进行访问;
3.页面不使用XHR请求;
使用jsonp请求,jsonp是一种非官方的协议,大家约定俗成的调用方式,因为页面可以加载不同源的js代码,所以jsonp就将普通的请求后端的请求改造成请求js的请求,请求服务器的结果为原本请求接口的数据;但这种方式不建议去使用;
jsonp有以下几个弊端,1.服务器需要支持jsonp,需要添加添加callback函数名及修改固定的格式,2.只支持get请求,不能使用其他请求去调用,3.发出的不是XHR请求;
三.跨域问题的常见形式
跨域分为简单跨域和复杂跨域,
简单跨域会直接请求服务器端,并根据服务端返回的头文件进行判断;
复杂跨域浏览器会先向服务器端发出options请求,判断服务器端是否允许跨域,允许之后才进行正常的请求操作;
web开发中的跨域问题相关推荐
- Spring boot 和Vue开发中CORS跨域问题
1. 遇到的问题: 我用spring-boot 做Rest服务,Vue做前端框架,用了element-admin-ui这个框架做后台管理.在调试的过程中遇到了如下错误: Preflight respo ...
- 关于flex开发中的跨域访问问题
1,一次偶然的机会碰到这个问题了,flex有跨域访问问题,但是,imgage.soure='其它域名地址是可以的'.能显示出来,为什么? 不是说有跨越访问的问题么,其实flash说的跨域访问问题,不是 ...
- (转)HTML5开发中Access-Control-Allow-Origin跨域问题
今天准备通过JavaScript的方式调用问说问答的内容,由于使用的不同的二级域名,遇到了一个跨域问题,虽然可以使用JSON或者XML来解决这个问题,但是我们可以通过Access-Control-Al ...
- 前端开发中的跨域问题及解决方案
什么是跨域报错? 为什么会出现浏览器跨域报错? 简单来讲就是:不同源的ajax请求,具体来说满足以下三个条件就会出现跨域错误 1. 请求响应双方url不同源. 双方url:发出请求所在的页面 与 所请 ...
- Vue---vue-cli 中的proxyTable解决开发环境中的跨域问题
Vue---vue-cli 中的proxyTable解决开发环境中的跨域问题 参考文章: (1)Vue---vue-cli 中的proxyTable解决开发环境中的跨域问题 (2)https://ww ...
- javascript中实现跨域的方式总结
js中的跨域请求应该也算是一个重点,具体什么叫跨域,在这里我就不展开了,可以查一下浏览器的同源策略和跨域的定义.原来只知道常用的jsonp和document.domain这两种方式,这几天学习了一下其 ...
- Spring Security系列教程解决Spring Security环境中的跨域问题
原创:千锋一一哥 前言 上一章节中,一一哥 给各位讲解了同源策略和跨域问题,以及跨域问题的解决方案,在本篇文章中,我会带大家进行代码实现,看看在Spring Security环境中如何解决跨域问题. ...
- yii2 跨域请求配置_如何在SpringBoot应用中实现跨域访问资源和消息通信?
允许跨域访问 CORS ( Cross Origin Resource Sharing,跨域资源共享)机制允许Web应用服务器进行跨域访问控制,从而使跨域数据传输得以安全进行.浏览器支持在API容器中 ...
- 爆破专栏丨Spring系列教程解决Spring Security环境中的跨域问题
上一章节中,一一哥 给各位讲解了同源策略和跨域问题,以及跨域问题的解决方案,在本篇文章中,我会带大家进行代码实现,看看在Spring Security环境中如何解决跨域问题. 一. 启用Spring ...
最新文章
- 利用oc门或od门实现线与_景县专业门球场专用人造草坪甄选博翔远
- ASP.NET MVC3 部署的前期工作
- linux分文件编程、静态库与动态库
- mysqldatadir 转移
- vs 中使用32 位mysql_vs2010连接mysql数据库(含win32和x64两种平台)
- 歪枣网数据库设计-千万级别海量数据查询效率优化
- mysql 5.7 刘,深度解析MySQL 5.7之中文全文检索
- 安装activex手机控件_86/BRZ 免“油饼”安装 Defi 机油压力表
- STEP 7新建梯形图程序,S7-plcsim使用
- 自动旁注并多进程调用wwwscan扫描旁注结果的python脚本。
- 如何设置局域网共享打印机及问题解决
- php产品管理系统,企业商品进销存管理系统
- 安装微软的消息队列服务器,MSMQ消息队列的安装、启用
- 简易数字时钟 按键可校准
- 微软梁念坚:六个新潮流推动IT行业发展
- 计算机视觉之--使用opencv生成简笔画小视频
- HDU - 2014 青年歌手大奖赛_评委会打分
- 居然有人问,软件测试算是程序员吗?
- 华为鸿蒙如何内测,华为鸿蒙内测体验曝光,与EMUI有明显区别
- ChinaSkills-网络系统管理(2022改革Linux部分SDN软件定义网络[OpenDayLight]CentOS7.9安装运行预测)