import { userInfo } from "../store/index"
// 配置实际地址
const baseURL = 'https://pcapi-xiaotuxian-front-devtest.itheima.net'
// 配置请求头信息
const httpInterceptor = {
invoke(options) {
// 拼接地址
if (!options.url.startsWith('http')) {
options.url = baseURL + options.url
}
// 配置超时响应时间
options.timeout = 10000
// 配置请求头
options.header = {
...options.header,
Authorization: "token"
}
// 添加token
// if (token) {
// options.header.Authorization = token
// }
// console.log(options)
}
}
// 添加拦截器
uni.addInterceptor("request", httpInterceptor)
uni.addInterceptor("uploadFile", httpInterceptor)
// 请求拦截器
export const http = (options) => {
// 返回Promise resolve请求成功数据 reject请求失败返回数据信息
return new Promise((resolve, reject) => {
uni.request({
...options,
// 请求成功
success(res){
if(res.statusCode >=200 && res.statusCode <300){
// 返回请求核心数据
resolve(res.data)
}else if(res.statusCode === 401 ){
// 401错误权限不足->清理用户信息->跳转到登录页面
const user = userInfo()
user.clearUserInfo()
reject(res)
}else{
uni.showToast({
icon:"none",
title:res.data.msg || "请求错误"
})
reject(res)
}
},
// 响应失败,用户无网络
fail(err){
uni.showToast({
icon:"none",
title:"网络不佳,换个网络试试"
})
reject(err)
}
})
})
}
Uniapp+Vue3封装request
最新推荐文章于 2024-06-29 20:09:58 发布