axios二次封装代码
时间: 2023-10-24 14:09:44 浏览: 96
二次封装axios的代码可以根据不同的需求和项目结构而有所不同。根据提供的引用内容,以下是一个可能的axios二次封装代码的示例:
在utils文件夹下的request.js文件中:
```javascript
import axios from 'axios';
const instance = axios.create({
baseURL: 'your_base_url', // 替换为实际的请求地址
timeout: 5000, // 设置请求超时时间
});
// 请求拦截器
instance.interceptors.request.use(
(config) => {
// 在请求发送之前可以做一些处理,比如添加token等
// config.headers.Authorization = 'Bearer ' + token;
return config;
},
(error) => {
return Promise.reject(error);
}
);
// 响应拦截器
instance.interceptors.response.use(
(response) => {
// 在接收到响应后可以做一些处理,比如关闭加载提示等
return response.data;
},
(error) => {
return Promise.reject(error);
}
);
export function get(url, params) {
return instance.get(url, { params });
}
export function post(url, data) {
return instance.post(url, data);
}
// 其他请求方法,如put、delete等可以根据需求进行添加
export default instance;
```
在具体的页面,如home.js中,可以这样使用二次封装后的axios:
```javascript
import request from "@/utils/request";
function GetHomePage(data) {
return request.post(
"/v1/home/page", // 请求地址
stringify(data), // 请求的数据
{ headers: { "Content-Type": "application/x-www-form-urlencoded" } } // 请求头
);
}
// 其他API方法的定义
export { GetHomePage };
```
这个示例代码中,我们使用axios.create方法创建了一个axios实例,并对其进行了拦截器的配置。然后,我们导出了包装过的请求方法(如get和post),并在具体的页面中引入request.js来使用这些方法。这样可以方便地管理API,并且可以根据需要进行统一的请求处理,如添加token、加载提示等。当然,实际使用时,你需要根据自己的具体需求进行相应的修改和调整。
阅读全文