// axios 二次封装
import axios from 'axios'
import { Toast } from 'vant'
// 基本url
const baseURL = process.env.NOOE_ENV === 'development' ? 'http://rap2api.taobao.org/app/mock/294536/' : '真实接口url'
// 创建axios实例
const service = axios.create({
baseURL, // 基准的url
timeout: 3000 // 超过时间
})
// 请求拦截
service.interceptors.request.use(config => {
// 添加Token拦截
// ...Token
// 显示提示: 加载中...
Toast.loading({
message: '加载中...',
duration: 0
})
return config
})
// 相应拦截
service.interceptors.response.use(response => {
// 关闭提示
// Toast.clear()
// 判断处理响应数据
if (response.status >= 200 && response.status < 300) {
// 获取从后端响应回前端的数据对象
const resData = response.data
// 从后端返回的数据结构统一为 {code, data}
if (resData.code === 200) {
return resData.data
}
}
const err = new Error('请求出现异常')
err.error = response // 添加一个自定义的属性, 表示具体的错误属性
return Promise.reject(err)
})
// 导出
export default service
个人博客: zheng-zhihan.gitee.io