Vue 进阶(三):Axios 应用详解

一、前言
Axios 是基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中。
二、功能特性
在浏览器中发送
XMLHttpRequests请求;
在
node.js中发送http请求;
支持
Promise API;
拦截请求和响应;
转换请求和响应数据;
自动转换
JSON数据;
客户端支持保护安全免受
XSRF攻击;
浏览器支持;
三、安装
使用 bower:
使用 npm:
四、配置项与响应结构
4.1 配置项
可用的请求配置项如下,只有 url 是必需的。如果没有指定 method ,默认请求方法是 GET。
4.2 响应的数据结构
响应的数据包括下面的信息:
当使用 then 或者 catch 时, 会收到下面的响应:
五、示例
5.1 发送 GET 请求
5.2 发送 POST 请求
5.3 发送多个并发请求
处理并发请求方法如下:
可以通过给 axios传递对应的参数来定制请求:
六、请求方法别名
为方便起见,axios为所有支持的请求方法都提供了别名。
注意: 当使用别名方法时,
url、method和data属性不需要在config参数里面指定。
七、默认配置
可以为每一个请求指定默认配置。
7.1 全局 axios 默认配置
7.2 自定义实例默认配置
7.3 配置的优先顺序
Config will be merged with an order of precedence. The order is library defaults found in lib/defaults.js, then defaults property of the instance, and finally config argument for the request. The latter will take precedence over the former. Here's an example.
八、拦截器
8.1 添加拦截器
可以在处理 then 或 catch 之前拦截请求和响应。
8.2 移除一个拦截器
也可以给自定义的 axios 实例添加拦截器:
错误处理
九、Promises
axios 依赖原生 ES6 Promise 实现,如果浏览器环境不支持 ES6 Promises,需要引入 polyfill。
9.1 TypeScript
axios 包含一个 TypeScript 定义。
Credits
axios is heavily inspired by the http-like service for use outside of Angular.
版权声明: 本文为 InfoQ 作者【华强】的原创文章。
原文链接:【http://xie.infoq.cn/article/a7f14f28fb2a662cbd7fea48f】。文章转载请联系作者。












 
    
评论