axios请求的二次封装,要代码
时间: 2023-10-04 13:14:14 浏览: 92
以下是一个简单的axios请求的二次封装代码示例:
```javascript
import axios from 'axios';
const instance = axios.create({
baseURL: 'http://localhost:3000', // 设置基础URL
timeout: 10000, // 设置请求超时时间
withCredentials: true // 设置跨域请求是否需要携带cookie
});
// 请求拦截器
instance.interceptors.request.use(config => {
// 在请求头中添加token等信息
config.headers['Authorization'] = 'Bearer ' + localStorage.getItem('token');
return config;
}, error => {
return Promise.reject(error);
});
// 响应拦截器
instance.interceptors.response.use(response => {
return response.data;
}, error => {
// 处理错误信息
if (error.response) {
switch (error.response.status) {
case 401:
// 处理未授权的情况
break;
case 404:
// 处理404错误
break;
default:
// 处理其他错误
break;
}
}
return Promise.reject(error);
});
// 封装get请求
export const get = (url, params) => {
return instance.get(url, {
params: params
});
};
// 封装post请求
export const post = (url, data) => {
return instance.post(url, data);
};
```
使用示例:
```javascript
import { get, post } from './api';
get('/users').then(res => {
console.log(res);
});
post('/login', {
username: 'admin',
password: '123456'
}).then(res => {
console.log(res);
});
```
阅读全文