关于跨域讨论的是比较多的,实现跨域的方式也有很多种,jsonp,cros,代理等等。关于跨域的诸多方式就不多说,主要说说一个很小众的问题,关于jsnop的。
先来回答一个小问题:实际工作中跨域请求用JSONP,CORS,Proxy那个使用频率更高?
首先是proxy最多、其次是cors、jsonp最后
通过nginx进行代理这个方法最好, 因为不管什么环境, 你只要请求/api/xxxx就可以了。
Proxy理论上是应该是最多的。 现在前端能搞定的, 中小型公司后端都不愿意写Proxy,因为他们根本没有对系统的整体规划,能省则省。
cors,也很方便, 第三方的话,CORS最多。但是需要后端进行配置, 而且每次打包的请求地址需要重新配。多数场景都是一个公司旗下不同系统之间相互开设白名单。对外是不太会用的。
JSONP最近几年基本没有遇到过这种场景了. 而且打包的时候也是需要配置的。配置就是, 开发/测试/预发/线上的不同地址, 需要做不同的配置。JSONP,主要用于公开的接口,私密性的一定不会这么干jsonp应该是快淘汰的产物了。
接下来讨论一下不同请求方式中使用jsonp。
1.jq中使用jsonp
接口以百度搜索提示词为例
https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=&cb=abc
function getVal() {
$.ajax({
url: "https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hh