1.1 什么是 axios
Axios 是一个基于 promise 的 HTTP 库,可以用来发送网络请求。它可以在浏览器和 node.js 中使用,本质上是对原生 XMLHttpRequest 的封装,符合最新的 ES 规范,支持 Promise API,能够拦截请求和响应,转换请求和响应数据,取消请求,自动转换 JSON 数据等。
1.2 安装 axios
在 Vue 项目中,可以通过 npm 安装 axios:
npm install axios
1.3 axios 的基本使用
axios.get('api/student/querystudent.do')
.then(response => {
console.log(response.data); // 假设返回的数据格式是json
this.someData = response.data; // 将返回的数据存储在组件的data属性中
})
.catch(error => {
console.error(error);
});
1.4 创建实例
在项目中,可以创建多个 axios 实例,每个实例可以有不同的配置:
import axios from 'axios';
//const baseURL = process.env.VUE_APP_BASE_API_URL
const request = axios.create({
//baseURL, // 你的API地址
timeout: 1000,
})
拦截器用于在网络请求时,在发起请求或者响应时对操作进行处理,例如发送请求时添加网页加载的动画,或认证 token,强制用户先登录再请求数据;响应的时候,可以结束网页加载的动画,或者对响应的数据进行处理。
axios.interceptors.request.use(
(config) => {
// 发生请求前的一系列的处理
console.log("开启加载动画");
console.log("认证是否有 token,如果没有,要去登录");
return config; // 拦截后的放行
},
(err) => {
// 请求错误处理
return Promise.reject(err);
}
);
axios.interceptors.response.use(
(response) => {
// 数据回来前的一系列的处理
console.log("关闭加载动画");
console.log("对数据进行一些处理");
return response.data; // 拦截后的放行,返回响应对象中的数据
},
(err) => {
// 响应错误处理
return Promise.reject(err);
}
);
export default request;