要理解跨域,首先要知道同源策略,同源策略就是同协议,同域名,同端口,如果是同源的就可以再这个原环境下去拿到数据,但是如果不同源,就需要去跨域。因为不是一家人,就不能吃一家饭。
我们常见的几种跨域方式,CORS、JSONP、proxy代理,当然应该还有,但是目前我就知道这几种。
那么我们先说一下CORS:
CORS我对他的原理并不是很理解,只知道他需要双端同意,就是服务器端需要开启一个东西,然后客户端需要携带一个要跨域到的那个网址,这样才能请求成功。由于这个并不是很理解这个知识点就先说到这。我们接下来说一说jsonp,我对这个还是比较熟悉的,当然更深的话,那还是不太行。说一下什么是jsonp,jsonp就是允许用户发送一个callback给服务端,然后服务端会把用户传过来的这个东西当成一个函数名用这个函数包裹住json数据,这样也方便用户可以随便定义数据。它的原理就是通过标签的src属性去进行跨域的,因为src不受同源策略的影响,就比如我们在网上复制一张照片的地址,放到img标签的src里面,这个图片就可以出来,jsonp就是通过这种src标签去进行跨域的。
那么它大概分为这么几个步骤:
1:使用含有src属性的标签去进行跨域
2:在此标签内部传一个callback回调函数,
3:这个callback一定是前端页面上有的,而且是全局,不然会报错,因为服务端接收到这个callback后会返回到页面中,如果此时它找不到,肯定不行啊。
4:他会把返回来的这个函数进行调用,试想一下,如果前台找不到这个函数是不是会报错,如果有这个函数,那么这个函数所携带的参数就是我们返回来的数据。
跨域的方法汇总
最新推荐文章于 2024-08-30 20:29:15 发布