axios简介
介绍
Axios 是一个基于Promise的网络请求库,作用于node.js和浏览器中.它是同构(isomorphic)的,即同一套代码可以运行在浏览器和node.js中。
在服务端它使用原生 node.js 的http
模块, 而在客户端 (浏览端) 则使用 XMLHttpRequests。
特性
Axios具有以下特性:
- 从浏览器创建 XMLHttpRequests
- 从 node.js 创建 http 请求
- 支持 Promise API
- 拦截请求和响应
- 转换请求和响应数据
- 取消请求
- 自动转换JSON数据
- 客户端支持防御XSRF
安装axios
更多安装指令见axios中文文档:起步 | Axios 中文文档 | Axios 中文网 (axios-http.cn)
使用npm安装axios:
npm install axios
使用yarn安装axios:
yarn add axios
使用bower安装axios:
bower install axios
axios的基本用例
发起GET请求
使用以下代码可以发起一个GET请求:
const axios = require('axios');
// 向给定ID的用户发起请求
axios.get('/user?ID=12345')
.then(function (response) {
// 处理成功情况
console.log(response);
})
.catch(function (error) {
// 处理错误情况
console.log(error);
})
.then(function () {
// 总是会执行
});
// 支持async/await用法
async function getUser() {
try {
const response = await axios.get('/user?ID=12345');
console.log(response);
} catch (error) {
console.error(error);
}
}
上述代码中的GET请求部分也可以用以下代码实现:
// 上述请求也可以按以下方式完成(可选)
axios.get('/user', {
params: {
ID: 12345
}
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
})
.then(function () {
// 总是会执行
});
注:为了在CommonJS中使用
require()
导入时获得TypeScript类型推断(智能感知/自动完成),请使用以下方法:const axios = require('axios').default; // axios.<method> 能够提供自动完成和参数类型推断功能
发起POST请求
发送一个POST请求:
axios.post('/user', {
firstName: 'Fred',
lastName: 'Flintstone'
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
发起多个并发请求:
function getUserAccount() {
return axios.get('/user/12345');
}
function getUserPermissions() {
return axios.get('/user/12345/permissions');
}
Promise.all([getUserAccount(), getUserPermissions()])
.then(function (results) {
const acct = results[0];
const perm = results[1];
});