axios基本配置

我工作中主要使用vue-cli搭建工程,项目开始需要进行很多环境配置,如commitlint、tslint,axios等,下面逐步上传一些通用配置,方便以后开发,首先从axios开始,代码如下:

import axios from 'axios';
import {Notify} from 'vant';

// 本地会自动走vue.config.js里的代理地址,不需要配置baseUrl。否则代理会失效
if (process.env.VUE_APP_ENV !== 'development') {
  axios.defaults.baseURL = process.env.VUE_APP_SERVER;
}


// axios.defaults.headers['Content-Type'] = 'application/x-www-form-urlencoded'
axios.defaults.withCredentials = true; // 让ajax携带cookie

// 请求拦截
axios.interceptors.request.use(
    (config) => {
      const token = localStorage.getItem('token');
      if (token) {
        // 判断是否存在token,如果存在的话,则每个http header都加上token
        config.headers.token = token; //请求头加上token
      }
      return config;
    },
    (err) => {
      return Promise.reject(err);
    }
);

//拦截响应,做统一处理
axios.interceptors.response.use(
    (response) => {
      const {data: {code, msg}} = response;
      if (code === 0 || code === 200) {
        return response;
      } else if (code === 809 || code === 808) {
        Notify({type: 'warning', message: '程序验证已过期,请重新进入'});
        setTimeout(() => {
          if (process.env.NODE_ENV === 'production') {
            location.href = '/transreportpage/';
          } else {
            location.href = '/';
          }
        }, 2000);
      } else {
        // 统一的错误信息处理
        Notify({type: 'warning', message: msg});
      }
      return response;
    },
    function(error) {
      Notify({type: 'warning', message: `很遗憾 请求无响应:${error}`});
      return Promise.reject(error); // 返回接口返回的错误信息
    }
);


// #utf8 编码否则会出现中文乱码
// 200=成功
// 0=成功
// 400=参数异常
// 404=资源不存在
// 401=需要认证后访问
// 403=系统拒绝访问
// 500=系统异常
// 504=请求超时
//
// 700=用户名不能为test
// 701=用户不存在
//
// 800=验证码不正确
// 801=不支持的登录类型
// 802=登录失败
// 803=账户名或者密码输入错误
// 804=账户被锁定,请联系管理员
// 805=密码过期,请联系管理员
// 806=账户过期,请联系管理员
// 807=账户被禁用,请联系管理员
// 808=账户没有登录
// 809=没有权限访问

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值