1.第一步:创建文件
2.第二部:通过命令下载npm包, uni-app-fetch
3.第三步:编写代码
const CONFIG = {
development: {
baseURL: "",
test:""
},
production: {
baseURL: "",
test:""
},
}
export default CONFIG[process.env.NODE_ENV];
import {createUniFetch} from 'uni-app-fetch'
import config from '@/common/config.js'
//配置符合自己项目得请求对象
export const uniFetch = createUniFetch({
loading: {
title: '正在加载...'
},
baseURL: config.baseURL,
intercept: {
// 请求拦截器
request(options) {
// 1.获取token
const userInfo = store.state.$userInfo;
if (userInfo.token && !options.url.includes('login')) {
options.header = {
Authorization: userInfo.token
}
}
// 后续补充实际逻辑
return options
},
// 响应拦截器
response({
statusCode,
data
}) {
//401状态 响应状态码 statusCode
if (statusCode === 401) {
//获取当前的页面栈
let arr = getCurrentPages()
let one = arr[arr.length - 1]
let acUrl = '/' + one.route
//跳转登录
uni.navigateTo({
url: '/pages/login/index',
})
}
if (statusCode === 500) {
const { code } = data;
if (code === 'A1871') { // 该账号已在其他设备登陆,请重新登录
uni.navigateTo({
url: '/pages/login/index',
})
setTimeout(() => {
uni.showToast({
title: '该账号已在其他设备登陆,请重新登录',
icon: 'none',
})
}, 500);
}
}
//等等状态码发生的情况
// 后续补充实际逻辑
return data
},
},
})