import {
createUniFetch
} from 'uni-app-fetch'
import {
useUserStore
} from '@/store/user.js'
const userStore = useUserStore()
const tabPags = ['pages/task/index', 'pages/message/index', 'pages/my/index']
// 使用自定义选项创建实例
export const uniFetch = createUniFetch({
loading: {
title: '正在加载...'
},
baseURL: 'https://slwl-api.itheima.net',
intercept: {
// 请求拦截器
request(options) {
// 把 token 添加至请求头
let defaultHeader = {}
if (userStore.token) {
defaultHeader.Authorization = userStore.token
// defaultHeader.abc = '123'
// defaultHeader.dddd = '456'
}
// 将 defaultHeader 中的数据,追加至 options.header 不能直接赋值
options.header = Object.assign(defaultHeader, options.header)
console.log('---request ---', options)
return options
},
// 响应拦截器
response(result) {
console.log('--response---', result)
if (result.statusCode == 200) {
return result.data
} else if (result.statusCode === 401) {
// 没有权限,token 过期
// 跳转至登陆页面,重新登陆, 同时参递参数,告知是从哪个页面来的
// 获得 页面栈
const pages = getCurrentPages()
// 当前页面的 url
const lastUrl = pages[pages.length - 1].route
// opentype 0 普通页面 1 tabbar页面
const opentype = tabPags.includes(lastUrl) ? 1 : 0
uni.navigateTo({
url: `/pages/login/index?redirectUrl=/${lastUrl}&opentype=${opentype}`,
})
} else {
return result
}
},
},
})
export default uniFetch
02-11
4039
08-13