// common/http.js import _config from './config'; // 导入私有配置 import service from './service'; // 这里是之前项目配置本地存储账号信息的,不需要可以删除 import store from '../store'; // 引入 Vuex store export default function $http(options) { // 从 Vuex store 中获取后端地址 const backendUrl = store.state.backendUrl; // 进行url字符串拼接 options.url = backendUrl + options.url; console.log(options.url); return new Promise((resolve, reject) => { // 拦截请求 _config.header.Authorization = service.getToken(); // 这里是调用本地存储配置文件的方法,不需要可以改下面这种方式 _config.header['Content-type'] = 'application/json;charset=utf-8'; // _config.header['Content-type'] = 'application/x-www-form-urlencoded;charset=utf-8' // _config.header.Authorization = uni.getStorageSync(STATE_KEY); uni.request({ ..._config, ...options, complete: (response) => { console.log(response); // 登录失效这边后台是返回403看情况 if (response.data.code === 403) { // 返回登录界面 uni.navigateTo({ url: '/pages/login/login' }); uni.showToast({ icon: 'none', title: '登录已失效' }); // 清空token service.addToken(''); } // request 请求访问成功 这里返回的时候response.data才是请求返回的结果errorCode if (response.data.code === 200 || response.data.status === "success") { resolve(response.data); } else { // 接口请求失败 resolve(response.data); // console.log(response.data) // 处理catch 请求,不在本页面之外处理,统一在这里处理 if (options.handle) { reject(response); } else { try { Promise.reject(response).catch(err => { // console.error(err); _page_error(response.statusCode || response.errMsg); }); } catch (e) { console.log(e); } } } } }); }); } // 接口錯誤 function _error(err, msg = '') { switch (err) { case 400: console.error(msg); // 错误码400的处理方式 break; } } // request 錯誤 function _page_error(err) { switch (err) { case 401: // 错误码401的处理方式 console.error("请求被拒绝"); break; case 404: // 错误码404的处理方式 console.error("没有找到页面"); break; case 405: console.error("错误的请求"); break; } }