跨域是什么,以及怎么解决跨域
Posted syf976561581
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了跨域是什么,以及怎么解决跨域相关的知识,希望对你有一定的参考价值。
跨域是什么
跨域就是违反了浏览器的同源策略限制。同源策略(Sameoriginpolicy)是一种约定,当发送请求时,如果不满足同域名,同端口,同协议的三项的话就会造成跨域,只要有一项不满足就会造成跨域,它是浏览器最核心也最基本的安全功能,如果没有同源策略的话,整个浏览器都会受到影响.怎么解决跨域
正向代理和反向代理- jsonp:原理就是利用了script标签src属性外联引入文件不受同源策略的限制,在页面中动态插入了script,script标签的src属性就是后端api接口的地址,并且以get的方式将前端回调处理函数名称告诉后端,后端在响应请求时会将回调返还,并且将数据以参数的形式传递回去;
- document.domin:两个域名必须属于同一基础域名,并且所有的协议端口完全一致,否则无法跨域;例:beijing.58.com
tianjing.58.com ; - iframe、hash :父页面向子页面传输数据:将要传递的数据添加到子页面的url的hash值上,子页面通过location.hash
并添加定时器实时地动态父页面传来的数据;子页面向父页面传输数据:利用window.name的特性,及页面重新加载但当前页的name值不变,即使换了一个页面。需要三个页面配合使用。一个应用页面,一个数据页面,一个代理文件。代理文件一般是一个没有任何内容的html页面,需要和应用页面在同一域下。将数据页面的窗口换成代理页面,代理页面通过window.name获取数据页面留下的数据,应用页面再访问和它同源的代理页面获取数据,就完成了跨域; - CORS(Cross-Origin-Resource-Sharing):在服务器端设置的,不需要客户端进行操作。Cors背后的思想是使用自定义的http头部让浏览器和服务器进行沟通,从而决定请求或响应是否应该成功,还是应该失败。浏览器向服务器发送请求,如果服务器认为这个请求可以接受,就在Access-Control-Allow-Origin头部中回发相同的源信息(如果是公共资源,可以回发*);如果没有这个头部,或者有这个头部但信息源不匹配,浏览器就会驳回请求。正常情况下,浏览器会处理请求。(请求和响应都不包含cookie信息);
- 服务器跨域,服务器中转代理:前端向本地服务器发送请求,本地服务器代替前端再向服务器接口发送请求进行服务器间通信,本地服务器是个中转站的角色,再将响应的数据返回给前端
好了,今天就说到这了,作者创作不易,如果文章对你有帮助的话,记得留下你的点赞和关注呦
以上是关于跨域是什么,以及怎么解决跨域的主要内容,如果未能解决你的问题,请参考以下文章