很多种方法,但万变不离其宗,都是为了搞定同源策略。重用的有
jsonp
、iframe
、cors
、img
、HTML5 postMessage
等等。其中用到html
标签进行跨域的原理就是html
不受同源策略影响。但只是接受Get
的请求方式,这个得清楚。
延伸1:img iframe script 来发送跨域请求有什么优缺点?
1. iframe
- 优点:跨域完毕之后
DOM
操作和互相之间的JavaScript
调用都是没有问题的 - 缺点:1.若结果要以
URL
参数传递,这就意味着在结果数据量很大的时候需要分割传递,巨烦。2.还有一个是iframe
本身带来的,母页面和iframe
本身的交互本身就有安全性限制。
2. script
- 优点:可以直接返回
json
格式的数据,方便处理 - 缺点:只接受
GET
请求方式
3. 图片ping
- 优点:可以访问任何
url
,一般用来进行点击追踪,做页面分析常用的方法 - 缺点:不能访问响应文本,只能监听是否响应
延伸2:配合 webpack 进行反向代理?
webpack
在 devServer
选项里面提供了一个 proxy
的参数供开发人员进行反向代理
'/api'