为什么要跨域?
因为同源策略,同源策略是为了不让恶意网站获取你的如cookie的私人数据,但现实中要跨域寻求其他源下的资源
jsonp
原理:通过script的无跨域限制的特点实现,通过同时将一个callback函数传给服务端,这个函数用于接收服务端的数据
缺点:只能发送get请求(script特点),所以容易被劫持url,不安全
CROS跨域资源代理
原理:服务器通过在响应头中添加允许访问的源来实现跨域
缺点:服务端只能写一个源 或者 如果要多源 可以用*,但是不能携带cookie,否则会被假装客户信息登录
proxy
原理:使用webpack、webpack-dev-server配置proxy,前提是没有被服务端列入黑名单
缺点:貌似没有,proxy目的是为了解决CROS的只能单源的问题,proxy相当node模拟服务器请求,服务器请求是不存在跨域的,浏览器之间的请求才存在
ngnix反向代理
原理:不需要前端去配,服务器部署的事情
前面四种够了