为vue3 封装一个基于axios的request
时间: 2023-09-22 14:08:00 浏览: 115
好的,以下是一个基于 Axios 封装的 request 工具,可以在 Vue3 项目中使用:
```javascript
import axios from 'axios';
const request = axios.create({
baseURL: process.env.VUE_APP_API_BASE_URL,
timeout: 10000,
});
request.interceptors.request.use(
config => {
// 在请求头中添加 token 等信息
const token = localStorage.getItem('token');
if (token) {
config.headers.Authorization = `Bearer ${token}`;
}
return config;
},
error => {
return Promise.reject(error);
}
);
request.interceptors.response.use(
response => {
return response.data;
},
error => {
const response = error.response;
if (response && response.data) {
// 处理错误信息
console.log(response.data);
}
return Promise.reject(error);
}
);
export default request;
```
在此封装中,我们使用 `axios.create()` 方法创建了一个实例,可以设置一些默认配置。在请求拦截器中,我们可以在请求头中添加 token 等信息。在响应拦截器中,我们可以处理错误信息,并返回响应内容中的 `data` 字段。
在使用时,可以直接调用 `request` 实例的方法,例如:
```javascript
import request from '@/utils/request';
request.get('/users').then(data => {
console.log(data);
}).catch(error => {
console.log(error);
});
```
这样,就可以方便地发送请求并处理响应了。
阅读全文