/** * 响应拦截 * @param {Object} http */ module.exports = (vm) => { uni.$u.http.interceptors.response.use((response) => { /* 对响应成功做点什么 可使用async await 做异步操作*/ const data = response.data // 自定义参数 const custom = response.config?.custom // if (data.code !== 200) { // 服务端返回的状态码不等于200,则reject() // // 如果没有显式定义custom的toast参数为false的话,默认对报错进行toast弹出提示 // if (custom.toast !== false) { // uni.$u.toast(data.message) // } // // 如果需要catch返回,则进行reject // if (custom?.catch) { // return Promise.reject(data) // } else { // // 否则返回一个pending中的promise // return new Promise(() => { }) // } // } // return data.data || {} // 如果把originalData设置为了true,这里得到将会是服务器返回的所有的原始数据 // 判断可能变成了res.statueCode,或者res.data.code之类的,请打印查看结果 if (data.code == 401) { console.log("重新登录") uni.reLaunch({ url: "/pages/login/index" }) return } if (data.code == 422) { uni.$u.toast(data.message) return false } if (data.code == 400) { uni.$u.toast(data.message) return false } if (data.code == 500) { uni.$u.toast(data.message) return false } if (data.code < 300 && data.code >= 200) { // 如果把originalData设置为了true,这里return回什么,this.$u.post的then回调中就会得到什么 return data; } else return false; }, (response) => { /* 对响应错误做点什么 (statusCode !== 200)*/ return Promise.reject(response) }) }