uniapp 如何判断发的请求是网络异常uni.request
如何判断发的请求是网络异常uni.request
代码:
// 统一处理网络错误UI
function handleNetworkError(err) {// let message = '网络异常,请重试';let message = '';const errMsg = err.errMsg || '';if (errMsg.includes('timeout')) {message = '请求超时,请检查网络或稍后重试';} else if (errMsg.includes('fail') || errMsg.includes('Error')) {message = '网络连接失败,请检查网络设置';}if(message){uni.showToast({title: message,icon: 'none',duration: 3000});}
}
所有代码:
import config from './config.js'
const header = {'content-type': "application/json",'Cache-Control': 'no-cache'
}export default function https(options) {let realUrl = ''if (config.env == 'dev') {realUrl = '/api' + options.url;}// let ip = uni.getStorageSync('ip')// let port = options.url.indexOf('/apk') === -1 ? ':5001' : '';// realUrl = `http://${ip}${port}${options.url}`;return new Promise((resolve, reject) => {uni.request({url: realUrl,data: options.data,header: header,method: options.method,success: (res) => {if (res.statusCode === 200) {switch (res.data.code) {case 0:resolve(res.data)break;case 1:reject(res.data)break;case 403:console.log("request异常")uni.showToast({icon: 'none',title: '登录已失效'});uni.navigateTo({url: '/pages/login/index'});break;default:reject(res.data)}} else {switch (res.statusCode) {case 404:uni.showToast({icon: 'none',title: '资源加载不到'});break;default:uni.$u.toast('服务器连不上啦')}}},fail: (err) => {console.log("执行失败:", err)// uni.$u.toast('请检查网络!')// reject('err')handleNetworkError(err);reject(err)},})})
}// 统一处理网络错误UI
function handleNetworkError(err) {// let message = '网络异常,请重试';let message = '';const errMsg = err.errMsg || '';if (errMsg.includes('timeout')) {message = '请求超时,请检查网络或稍后重试';} else if (errMsg.includes('fail') || errMsg.includes('Error')) {message = '网络连接失败,请检查网络设置';}if(message){uni.showToast({title: message,icon: 'none',duration: 3000});}
}