/** * https://www.uviewui.com/js/http.html */ import store from "@/store"; module.exports = (vm) => { // 初始化请求配置 uni.$u.http.setConfig((config) => { /* config 为默认全局配置*/ config.baseURL = "http://py12306.learnerhub.net"; // api 根域名,本地开发大概就是 localhost(看你怎么启动的后端服务器) return config; }); // 请求拦截 uni.$u.http.interceptors.request.use( (config) => { const authToken = uni.getStorageSync("auth-token"); if (authToken) { config.header.Authorization = `Bearer ${authToken}`; } return config; }, (config) => { return Promise.reject(config); } ); // 响应拦截,对响应成功做点什么 可使用 async await 做异步操作 uni.$u.http.interceptors.response.use( (response) => { const data = response.data || {}; if (data.code === 0) { return Promise.resolve(data); } else { if ([110001, 110003, 110005].includes(data.code)) { // 以上 code 都是用户 auth 有问题,清空一下 store 数据 store.dispatch("revertAuth"); } uni.hideLoading(); uni.showToast({ icon: "error", duration: 2000, title: data.msg || response.msg, }); return Promise.reject(response); } }, (response) => { uni.hideLoading(); // 对响应错误做点什么 (statusCode !== 200) const data = response.data || {}; uni.showToast({ icon: "error", duration: 2000, title: data.msg || response.msg, }); return Promise.reject(response); } ); };