网络请求模块选择
选择一:传统的Ajax是基于XMLHttpRequest
为什么不用:配置调用方式混乱,编码复杂
选择二:jQuery-Ajax
相对于传统的Ajax非常好用
为什么不选择:整个Vue开发中都不需要jQuery,为了网络请求引入jQuery不合理
选择三:官方在Vue1.x时退出Vue-resource
体积相对jQuery小很多,但是Vue2.x后不再更新vue-resource,以后的项目开发维护存在隐患
选择四:官方现在推荐axios
jsonp
前端开发中常用的网络请求方式就是JSONP,为了解决跨域访问问题
原理:
JSONP核心在于通过< script >标签src来帮助请求数据
原因是我们的项目部署在domain1.com服务器上时,时不能直接访问domain.com服务器上的资料的
这个时候利用< script>标签的src帮助我们去服务器请求数据,将数据当作一个js的函数来执行,并且执行的过程中传入我们需要的json
所以封装jsonp的核心在于我们监听window上的jsonp进行回调的名称
JSONP的封装
axios
特点
在浏览器发送XMLHttpRequest请求
在node.js中发送http请求
支持Promise API
拦截请求和响应
转换请求和响应数据