axios 的简单配置

21 篇文章 2 订阅
9 篇文章 0 订阅

配置axios的文件源码 (简单配置)


import axios from 'axios'
import { Toast } from 'vant' // 弹框 自行调换
import store from '@/store'
import router from '@/router'

// 全局配置
const request = axios.create({
  timeout: 10000,   // 请求的超时时间
  headers: {
    'X-Requested-With': 'XMLHttpRequest',
    'X-Version': '1.0'
  }
});

// 拦截器 =》 请求前
request.interceptors.request.use((config) => {
  // token
  if (localStorage.getItem('Authorization')) {
    config.headers.Authorization = localStorage.getItem('Authorization')
  }
  return config; // 出口请求参数
}, err => Promise.reject(err));


// 请求后
request.interceptors.response.use(
  res => {
    store.commit('SET_LOADING_STATUS', false)
    // 对响应数据做些事
    if (res.data.code === 401) {
      Toast('登录超时,请重新登录')
      store.commit('SET_LOGINOUT') // 退出登录方法
      router.replace('/login').then(() => {
        location.reload()
      }).catch(err => console.log(err))
    }
    res.data.code != 200 && Toast(res.data.message)
    return res.data  // 出口请求参数
  },
  error => {
    store.commit('SET_LOADING_STATUS', false)
    if (typeof error.response === 'undefined') {
      // store.commit('SET_NETWORK', true)
      Toast('服务器开小差了...')
    }
    console.log(error)
    error.response.status === 500 && Toast('服务器开小差了,请稍等...')
    return Promise.reject(error)  // 出口请求参数
  })

/**
 * 提交表单
 */
const postForm = (url, data = {}) => {
  return request.post(url, data, {
    headers: {
      'Content-Type': 'application/json',
    },
  });
};

const fetch = (url, params = {}) => {
  return request.get(url, { params })
}

export default {
  install(Vue) {
    Vue.http = { postForm, fetch};
    Vue.prototype.$http = Vue.http;
  },
};

export {
  postForm,
  fetch
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

厚渡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值