是什么 ? | : | Promise-based HTTP client library. |
开发语言 | : | JavaScript |
源码仓库 | : | https://github.com/axios/axios |
运行环境 | : | Web浏览器、Node.js Runtime |
jsDelivr⤵︎
<script src="https://cdn.jsdelivr.net/npm/axios@0.19.2/dist/axios.min.js"></script>
BootCDN⤵︎
<script src="https://cdn.bootcdn.net/ajax/libs/axios/0.19.2/axios.min.js"></script>
step1、通过包管理器
安装axios
包管理器 | 安装命令 |
---|---|
bower | npm bower axios --save |
npm | npm install axios --save |
yarn | yarn add axios |
step2、在HTML代码中引入JavaScript
<script src="/bower_components/axios/dist/axios.min.js"></script>
step1、通过包管理器
安装axios
包管理器 | 安装命令 |
---|---|
npm | npm install axios --save |
yarn | yarn add axios |
step2、在Node.js代码中导入axios
模块
const axios = require("axios");
获得默认的实例。使用该实例可获得IDE自动提示功能。
创建新实例。该实例没有IDE自动提示功能。其实完全没有必须要使用该方法。
const axiosInstance = axios.create({
baseURL: 'https://some-domain.com/api/',
timeout: 1000,
headers: {'X-Custom-Header': 'foobar'}
});
修改默认的配置。
axiosInstance.defaults.baseURL = 'http://blog.fpliu.com';
axiosInstance.defaults.timeout = 3000;
axiosInstance.defaults.responseType = 'arraybuffer';
请求
的拦截器
。
示例:
axiosInstance.interceptors.request.use(config => {
config.responseType = 'arraybuffer'
config.timeout = 3000;
console.log("request interpreter, config = ", config);
return config;
});
注意:必须要有return config;
响应
的拦截器
。
示例:
//https://github.com/ashtuchkin/iconv-lite
const iconv = require('iconv-lite');
axiosInstance.interceptors.response.use(response => {
if (response.data) {
//因为页面是GBK编码的,不得不自己做解码处理
response.data = iconv.decode(response.data, "GBK");
return response;
}
throw new Error("response.data is empty!!");
});
注意:必须要有return response;
发起HTTP GET
请求。
示例:
axiosInstance
.get('/user?id=12345')
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
})
.then(function () {
// always executed
});
axiosInstance
.get('/user', {params: {id: 12345}})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
})
.then(function () {
// always executed
});
发起HTTP POST
请求。
示例:
axiosInstance
.post('/login', {phoneNumber: '12345678910', password: 'xxxx'})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
})
.then(function () {
// always executed
});