// 第一步引入axios
import axios from "axios"
// 第二步引入qs
import qs from "qs"
import storage from "@/utils/storage"
// 第三步 配置根路径 和 超时时间
let newAxios = axios.create({
baseURL: process.env.VUE_APP_BASE_API,
timeout: 10000,
})
// 第四步:
// 配置拦截器
// 添加请求拦截器
newAxios.interceptors.request.use(function (config) {
// 在发送请求之前做些什么
let token = storage.get("webapp_token")
if (token) {
config.headers.Authorization = token
}
return config;
}, function (error) {
// 对请求错误做些什么
return Promise.reject(error);
});
// 添加响应拦截器
newAxios.interceptors.response.use(function (response) {
// 对响应数据做点什么
// 响应拦截
//将返回的数据过滤 留下有用的数据返回
return response.data;
}, function (error) {
// 对响应错误做点什么
return Promise.reject(error);
});
//第五步:
// 封装方法解决 method对应的传值问题
// 因为这个方法需要将axios返回给别人用
function request(url, method, aaa) {
return newAxios({
url,
method,
data: method == "post" ? qs.stringify(aaa) : '',
params: method == "get" ? aaa : ''
})
}
// 请求有四种
// post登录 / 注册
// get 列表
// delete 删除
// put 修改
// 第六步
function post(url, aaa) {
return request(url, "post", aaa)
}
function get(url, aaa) {
return request(url, "get", aaa)
}
// 第七步暴露
export default {
post,
get
}