Axios
Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中。
特性
- 从浏览器中创建 XMLHttpRequests
- 从 node.js 创建 http 请求
- 支持 Promise API
- 拦截请求和响应
- 转换请求数据和响应数据
- 取消请求
- 自动转换 JSON 数据
- 客户端支持防御 XSRF
案例
执行 GET
请求
1 | // 为给定 ID 的 user 创建请求 |
执行 POST
请求
1 | axios |
执行多个并发请求
1 | function getUserAccount() { |
axios API
可以通过向 axios
传递相关配置来创建请求
axios(config)
1 | // 发送 POST 请求 |
axios(url[, config])
1 | // 发送 GET 请求(默认的方法) |
为方便起见,为所有支持的请求方法提供了别名
axios.request(config)
axios.get(url[, config])
axios.delete(url[, config])
axios.head(url[, config])
axios.options(url[, config])
axios.post(url[, data[, config]])
axios.put(url[, data[, config]])
axios.patch(url[, data[, config]])
请求配置
这些是创建请求时可以用的配置选项。
只有 url
是必需的。如果没有指定 method
,请求将默认使用 get
方法。
1 | { |
响应结构
1 | { |
使用 then
时,你将接收下面这样的响应 :
1 | axios.get("/user/12345").then(function (response) { |
拦截器
在请求或响应被 then
或 catch
处理前拦截它们。
1 | // 添加请求拦截器 |
如果你想在稍后移除拦截器,可以这样:
1 | const myInterceptor = axios.interceptors.request.use(function () { |
错误处理
1 | axios.get("/user/12345").catch(function (error) { |