/** * 响应拦截 * @param {Object} http */ module.exports = (vm) => { uni.$u.http.interceptors.response.use((response) => { /* 对响应成功做点什么 可使用async await 做异步操作*/ // uni.hideLoading() const data = response.data // 自定义参数 const custom = response.config?.custom // if (data.code == 0) { // return data || {} // } else { // 服务端返回的状态码不等于200,则reject() // // 如果没有显式定义custom的toast参数为false的话,默认对报错进行toast弹出提示 // if (custom.toast !== false) { // uni.$u.toast(data.msg) // } // // 如果需要catch返回,则进行reject // if (custom?.catch) { // return Promise.reject(data) // } else { // // 否则返回一个pending中的promise // return new Promise(() => {}) // } // } return data || {} }, (response) => { /* 对响应错误做点什么 (statusCode !== 200)*/ let statusCode = response.statusCode if (statusCode == 401) { console.log('当前接口401----------------------------'); uni.clearStorageSync() uni.redirectTo({ url: '/pages/user/signin' }) } else if (statusCode == 403 && response.data.code == 403 && response.data.msg == '您的账号已被拉黑!') { uni.setStorageSync('hasForbidden', { status: 0, msg: response.data.msg }) return uni.showToast({ title: response.data.msg, icon: 'none' }); } else if (statusCode == 500) { uni.$u.toast('接口报错') } return Promise.reject(response) }) }