这是我参与「4月日新计划更文活动」的第22天。
昨天带着大家一起学习了如何使用jsonp调用数据,文章里面说到了jsonp相比于ajax,可以实现跨域的请求。
那么除了jsonp之外,还有哪些跨域的方式能够为我们所用呢?
还有,什么是跨域呢?
好,今天就针对这个问题,咱们好好唠唠。
我所知道的跨域方式一共有下面7种方法,我先在这里把所有的跨域方法都列出来。
第一种:jsonp的方式 第二种:cors 跨域资源共享 第三种:postMessage请求数据 第四种:document.domain + iframe 第五种:node proxy 代理,有点类似写vue项目时候的proxyTable 第六种:nginx代理配置 第七种:websocket进行跨域
因为时间关系,这部分的内容太多太杂,我打算用两篇文章把这个问题讲清楚,今天先科普一下基础知识。
要说清楚这个问题,首先要解释一下什么是跨域,以及什么是域了。
域的概念来源于浏览器的同源策略。
同源策略就是当一个域名的协议、主机名、端口号都相同,那么我们认为这属于同一个域。如果这三者中有一项不满足,我们就认为他们不是同一个域。
不同域之间进行信息交互,存在安全隐患。所以浏览器设置了同源策略,在不同源之间进行信息交互的时候,存在跨域。
正常情况下,跨域的请求是不被浏览器允许的。但是真正进行业务开发的时候,通常会存在不同域名之间请求的。
那今天说的一些方案,就是解决不同域之间的信息交互的。
那我们回到跨域的方案上来。
第一种jsonp的请求方式在昨天已经说的很清楚了。
那明天的文章就主要讲一下cors跨域资源共享是什么,以及postMessage请求数据应该怎么做。
感兴趣的朋友期待我明后天的文章吧。
看到掘金上的好文章,如果对你有帮助,顺手点个赞,或者把文章收藏。不用担心找不到了,以后也能经常收到类似好回答,我会持续进行更新。