=============================================================================
-
1、JSONP (现在已经很少有,只支持get,而且用起来也很麻烦)
-
2、WebSocket(算是常用,客户端和服务端 双工通讯,但是 一般只用于特定的某些场景:比如需要实时更新的数据,像股市实时走势图)
-
3、CORS (常用,通过设置cors请求头的方式解决,一般由后台设置)
-
4、服务端正向代理 (少用,通过前端nodejs启动一个服务器代理转发的方式)
-
5、nginx反向代理(前端开发的时候本地通过vue.config.js中的proxy代理的方式,需要部署到线上的时候,让后端配置nginx,对匹配到的接口进行代理转发)
-
6.postMessage(少用)
上面前五种方式,在面试时,都要说出来。
面试会问:JSONP的原理是什么?怎么实现的?
在CORS和postMessage以前,我们一直都是通过JSONP来做跨域通信的。
JSONP的原理:通过script标签的异步加载来实现的。比如说,实际开发中,我们发现,head标签里,可以通过script标签的src,它是没有同源限制的,里面放url,加载很多在线的插件。这就是用到了JSONP。
JSONP的实现:
比如说,客户端这样写:
上面的src中,data=name是get请求的参数,myjsonp是和