vue 中 axios 的全局封装

import axios from 'axios';
import qs from 'qs';
import { Message } from 'element-ui';

const proxyserver = 'proxyserver';
// axios 配置proxy
// axios.defaults.timeout = 10000;
axios.defaults.headers.post['data-Type'] = 'json';
axios.defaults.headers.post['Content-Type'] =
  'application/x-www-form-urlencoded;charset=UTF-8';
// axios.defaults.baseURL = 'http://localhost:8080';

// POST传参序列化
axios.interceptors.request.use(
  config => {
    if (config.method === 'post') {
      config.data = qs.stringify(config.data);
      // config.data = config.data;
    }
    config.headers.auid = sessionStorage.auid || 1000;
    config.headers.access_token = sessionStorage.access_token || 1;
    return config;
  },
  error =>
    // _.toast("错误的传参", 'fail');
    Promise.reject(error)
);

// 返回状态判断
axios.interceptors.response.use(
  res => {
    if (res.status !== 200) {
      let info = '系统异常';
      alert(JSON.stringify(res));
      switch (res.status) {
        case 201:
          info = res.message || '参数格式错误';
          break;
        case 202:
          info = res.message || '登录失效';
          break;
        case 203:
          info = res.message || '无数据';
          break;
        case 204:
          info = res.message || '不支持请求';
          break;
        case 403:
          info = res.message || '登陆超时';
          break;
        case 500:
          info = res.message || '程序异常';
          break;
      }
      Message.error(info);
      return Promise.reject(res);
    }
    return res;
  },
  error => {
    let message = '系统异常';
    if (
      error &&
      error.response &&
      error.response.data &&
      error.response.data.message
    ) {
      message = error.response.data.message;
    }
    Message.error(message);
    return Promise.reject(error);
  }
);
export function param(data) {
  let url = '';
  for (const k in data) {
    const value = data[k] !== undefined ? data[k] : '';
    url += `&${k}=${encodeURIComponent(value)}`;
  }
  return url ? url.substring(1) : '';
}

export function fetch(url, params) {
  return new Promise((resolve, reject) => {
    axios
      .post(url, params)
      .then(
      response => {
        resolve(response.data);
      },
      err => {
        if (err.code === 'ECONNABORTED') {
          Message.error('请求超时!');
        } else if (err.data && err.data.msg) {
          Message.error(err.data.msg);
        } else {
          let message = '系统异常';
          if (
            error &&
            error.response &&
            error.response.data &&
            error.response.data.message
          ) {
            message = error.response.data.message;
          }
          Message.error(message);
        }
        reject(err);
      }
      )
      .catch(error => {
        reject(error);
      });
  });
}

export function fetchPut(url, params) {
  return new Promise((resolve, reject) => {
    axios
      .put(url, params)
      .then(
      response => {
        resolve(response.data);
      },
      err => {
        if (err.code === 'ECONNABORTED') {
          Message.error('请求超时!');
        } else if (err.data && err.data.msg) {
          Message.error(err.data.msg);
        } else {
          let message = '系统异常';
          if (
            error &&
            error.response &&
            error.response.data &&
            error.response.data.message
          ) {
            message = error.response.data.message;
          }
          Message.error(message);
        }
        reject(err);
      }
      )
      .catch(error => {
        reject(error);
      });
  });
}

export function fetchGet(url, params) {
  return new Promise((resolve, reject) => {
    axios
      .get(url, {
        params
      })
      .then(
      response => {
        resolve(response.data);
      },
      err => {
        reject(err);
      }
      )
      .catch(error => {
        reject(error);
      });
  });
}

export function fetchDelete(url, params) {
  return new Promise((resolve, reject) => {
    axios
      .delete(url, {
        params
      })
      .then(
      response => {
        resolve(response.data);
      },
      err => {
        reject(err);
      }
      )
      .catch(error => {
        reject(error);
      });
  });
}

export default {
  login: params => {
    return fetch('/proxyserver/auth/login', params); //登录
  },
  menus: params => {
    return fetchGet('/proxyserver/auth/web/menus', params); //菜单
  }
};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值