Uniapp+Vue3封装request

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)
			}
		})
	})
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值