前言
在小程序的开发中,经常会遇到登录过期让用户重新登录、请求header增加token、请求失败提示失败信息…等等,请求过多的时候,就会多了很多冗余重复的代码,所以必要时候我们需要做请求拦截和响应拦截。
一、新建requestHttp.js 文件
/**
* @param method {String} 'POST' 'GET' 'PUT'...
* @param url {String} :开发者服务器接口地址
* @param data {Object/String/ArrayBuffer} :请求的参数
*/
const HTTP = "https://aaa.bb.com/"; // 接口地址
const requestPromise = function(method, url, data) {
return new Promise((resolve, reject) => {
uni.request({
method,
url: HTTP + url,
data,
header: {
token: uni.getStorageSync("token")
},
success: res => {
switch (res.data.code) {
case 0: // 请求正确
resolve(res)
break
case -1: // 登录超时
uni.switchTab({
url: "../pages/login/login",
})
resolve(res)
break
default: // 其它异常情况
uni.showToast({
title: res.data.msg,
icon: "none",
})
reject(res)
break
}
},
fail: err => {
uni.showToast({
title: "请求失败,请稍后再试",
icon: "none",
})
reject(err)
}
})
})
}
module.exports = {
requestPromise
}
二、在具体业务中调用
import requestHttp from "./requestHttp.js"
requestHttp.requestPromise("POST", "get/userInfo", data).then(res => {
// do somethings
}).catch(err => {
console.log('err', err)
})