vuejs 2 后 作者尤雨溪发布消息,不再继续维护vue-resource,官方推荐大axios。
axios 是一个基于Promise 用于浏览器和 nodejs 的 HTTP 客户端。
特性:
1、从浏览器中创建 XMLHttpRequest;
2、从 node.js 发出 http 请求;
3、支持 Promise API;
4、拦截请求和响应;
5、转换请求和响应数据;
6、取消请求;
7、自动转换JSON数据;
8、客户端支持防止 CSRF/XSRF。
一、安装
1、 利用npm安装npm install axios --save
2、 利用bower安装bower install axios --save
3、 直接利用cdn引入<script src="https://cdn.bootcss.com/axios/0.18.0/axios.js"></script>
二、使用:
假如你安装了vue脚手架,则在main.js文件中添加如下代码:
说明:
安装其他插件的时候,可以直接在 main.js 中引入并使用 Vue.use()来注册,但是 axios并不是vue插件,所以不能使用Vue.use(),所以只能在每个需要发送请求的组件中即时引入。
为了解决这个问题,我们在引入 axios 之后,通过修改原型链,来更方便的使用。
三、发起POST请求:
四、发起一个GET请求:
五、一次发起多个请求:
六、axios可以通过配置(config)来发送请求:
axios(url[, config])
七、请求 返回的内容:
你可以这样来获取响应信息:
八、当有跨域限制的时候解决方案:
跨域的解决办法有很多,比如script标签 、jsonp、后端设置cros等等...,但是我这里讲的是webpack配置vue 的 proxyTable解决跨域。
这里我请求的地址是 http://www.thenewstep.cn/test/testToken.php
那么在ProxyTable中具体配置如下:
target:就是需要请求地址的接口域名。
这里列举了1种数据请求方式:axios
main.js代码:
axios请求页面代码:
这里的'apis'就是在ProxyTable中配置的'/apis'。
九、拦截器:
1、你可以在请求、响应在到达then/catch之前拦截他们。
2、取消拦截器:
3、 给自定义的axios实例添加拦截器:
十、错误处理:
十一、取消
你可以通过一个cancel token来取消一个请求
1、你可以通过CancelToken.source工厂函数来创建一个cancel token
2、你可以给cancelToken构造函数传递一个executor function来创建一个cancel token: