【uniapp中uniFetch的联网配置】

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值