axios的二次封装get和post的代码
时间: 2023-12-03 20:51:37 浏览: 85
下面是基于axios进行二次封装的get和post请求的代码示例:
```javascript
import axios from 'axios';
// 创建axios实例
const service = axios.create({
baseURL: 'http://localhost:3000', // api的base_url
timeout: 5000 // 请求超时时间
});
// request拦截器
service.interceptors.request.use(config => {
// 在发送请求之前做些什么
return config;
}, error => {
// 对请求错误做些什么
console.log(error); // for debug
Promise.reject(error);
});
// respone拦截器
service.interceptors.response.use(
response => {
const res = response.data;
// 如果返回的状态码不是200,说明接口请求失败或者权限校验失败
if (res.code !== 200) {
// 这里可以跳转到错误页面
console.log(res.msg);
} else {
return response.data;
}
},
error => {
console.log('err' + error); // for debug
// 这里可以跳转到错误页面
return Promise.reject(error);
}
);
// get请求
export function get(url, params) {
return service({
url: url,
method: 'get',
params: params
});
}
// post请求
export function post(url, data) {
return service({
url: url,
method: 'post',
data: data
});
}
```
在使用时,只需要引入封装好的get和post方法,然后传入相应的参数即可,例如:
```javascript
import { get, post } from './api.js';
// get请求示例
get('/api/user', { id: 1 })
.then(res => {
console.log(res);
})
.catch(err => {
console.log(err);
});
// post请求示例
post('/api/login', { username: 'admin', password: '123456' })
.then(res => {
console.log(res);
})
.catch(err => {
console.log(err);
});
```
阅读全文