创建Axios实例和请求拦截器的使用

import axios from "axios";
import { useTokenStore } from '@/stores/token'

const service = axios.create({
  baseURL: '/api',
  timeout: 5000
});

// axios请求拦截器
service.interceptors.request.use(
  config => {
    const tokenStore = useTokenStore()
    if(tokenStore.token){
      config.headers['token'] = tokenStore.token;
    }
    return config;
  },
  error => {
    console.log(error)
    return Promise.reject(error)
  }
)

export default service
  • 这段代码是一个用于创建Axios实例的模块,其中包括了请求拦截器的使用。
  • 首先,通过 ​import axios from "axios"​语句引入了Axios库。
  • 然后,通过 ​import { useTokenStore } from '@/stores/token'​语句引入了 ​useTokenStore​函数,用于获取状态管理里的token值。
  • 接下来,使用 ​axios.create()​方法创建了一个名为 ​service​的Axios实例。在创建实例时,传入了一些配置项,如 ​baseURL​表示请求的基础URL,​timeout​表示请求超时时间。
  • 最后,通过 ​service.interceptors.request.use()​方法注册了一个请求拦截器。该拦截器的作用是在发送请求之前对请求进行处理。
  • 在成功回调函数中,通过if(tokenStore.token)判断token值是否为空。如果不为空,则将token值设置在请求头的 ​token​字段中,以便在发送请求时携带token。
  • 在错误回调函数中,打印了错误信息并使用 ​Promise.reject()​返回一个被拒绝的Promise,将错误传递给下一个错误处理函数。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值