VUE-axios统一增加请求头并根据接口返回的状态码判断用户登录状态并跳转登录页

背景:后台接口返回code==501表示用户是未登录状态,需要登录才可访问;

main.js中通过http拦截做路由跳转


import Vue from 'vue'
import Axios from 'axios'
Vue.prototype.$axios = Axios
import { Loading, Message, MessageBox } from 'element-ui'
// 超时时间
Axios.defaults.timeout = 5000
// http请求拦截器
var loadinginstace
Axios.interceptors.request.use(config => {
  config.headers.common ={
    'Content-Type': "application/x-www-form-urlencoded",
    'Access-Control-Allow-Origin':'*',
    'Access-Control-Allow-Headers':'X-Requested-With,Content-Type',
    'Access-Control-Allow-Methods':'PUT,POST,GET,DELETE,OPTIONS',
    'user-id': library.getData("id")==undefined?'':library.getData("id")
  }
  // element ui Loading方法
    loadinginstace = Loading.service({ fullscreen: true })
  return config
}, error => {
  loadinginstace.close();
  Message.error({
    message: '网络不给力,请稍后再试'
  })
  return Promise.reject(error)
})
//http响应拦截器
Axios.interceptors.response.use(data => {
  // 响应成功关闭loading
  loadinginstace.close();
  const code = data.data.code;
  if(code == 501) { //未登录
    MessageBox.alert('请先登录', '提示', {
      confirmButtonText: '确定',
      callback: action => {
        router.replace({
          name: 'login',
          // query: {redirect: router.currentRoute.fullPath} //登录后再跳回此页面时要做的配置
        })
      }
    });
  }
  return data
}, error => {
  loadinginstace.close();
  Message.error({
    message: '网络不给力,请稍后再试'
  })
  return Promise.reject(error)
})

解决vue axios的封装 请求状态的错误提示问题

Vue全局loading及错误提示的思路与实现

vue - axios 请求统一增加请求头

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值