import {Base64} from 'js-base64' // const baseUrl='http://localhost:8000/' const baseUrl='https://yxy.glut.cc/' // 获取后端需要的token认证 // 使用wx.getStorageSync('userInfo')从本地存储中获取用户令牌信息并将其赋值给user_Token变量。 function encryptToken(){ const a =wx.getStorageSync('userInfos') let userInfo; if(a === '' || a === null || a === undefined || !"userInfo" in a){ return ''; }else{ userInfo = a.userInfo; } console.log(userInfo) if(userInfo === '' || userInfo === null || userInfo === undefined || !"token" in userInfo){ return ''; }else{ // const auth = Base64.encode(user_Token + ':') const Batoken = userInfo.token return Batoken } } // 发生请求 // 这个函数是一个请求接口的工具函数,接受一个url参数、一个data参数(默认为空对象)和一个method参数(默认为GET), // 返回一个Promise对象,通过uni.request方法发送网络请求,并在请求成功或失败时打印相应的结果或错误信息。 // 当网络请求成功时(即uni.request方法内部的success回调函数被调用),通常我们会将服务器返回的数据(在这里是res)传递给resolve函数,这会使Promise变为fulfilled(已成功)状态,并将数据传递给后续的.then处理函数。 // 当网络请求失败时(即uni.request方法内部的fail回调函数被调用),我们将错误信息(在这里是err)传递给reject函数,这会使Promise变为rejected(已失败)状态,并将错误信息传递给后续的.catch处理函数。 export function requestApi(url,data={},method='GET'){ return new Promise((resolev,reject)=>{ uni.request({ url:baseUrl+url, method:method, data:data, header:{Batoken:encryptToken()}, // 服务器的错误也会走success,所以要做判断 success:(res)=>{ console.log(res); const ststus= res.statusCode switch(ststus){ case 200: resolev(res.data) wx.hideLoading() break; case 404: console.error('接口不存在') reject('404') wx.hideLoading() break; case 401: wx.navigateTo({url:'/pages/login/index'}) wx.hideLoading() break; case 500: console.error('服务器异常错误') showToast('发生异常错误') reject('500') wx.hideLoading() break; case 501: console.error('服务器异常错误') showToast('发生异常错误') reject('501') wx.hideLoading() break; case 502: console.error('服务器异常错误') showToast('发生异常错误') reject('502') wx.hideLoading() break; case 400: console.error('参数不对',res.data.msg) reject('400') wx.hideLoading() break; case 422: console.error(res.data.msg) reject('422') wx.hideLoading() break; } }, fail: (err) => { reject(err) console.log(err) } }) }) } export function requestFileApi(url,filePath={},){ return new Promise((resolev,reject)=>{ uni.uploadFile({ name: 'file', url:baseUrl+url, filePath: filePath, header:{Batoken:encryptToken()}, // 服务器的错误也会走success,所以要做判断 success:(res)=>{ resolev(res.data) }, fail: (err) => { reject(err) console.log(err) } }) }) } function showToast(title){ wx.showToast({ title:title, icon: 'none', duration: 2000 }) }