• xiaota-axioslmport


    import axios from 'axios'
    import {Message, Loading} from 'element-ui'
    const getCookieItem = (key)=>{
      var arr = document.cookie.split("; ");
      for(var i = 0; i<arr.length; i++) {
        var res = arr[i].split("=");
        if (res[0] == key) {
          return res[1];
        }
      }
    };
    let loadingInstance;
    const HttpRequest = axios.create({
      timeout: 60000,
      headers: {
        'Content-Type': 'application/json; charset=UTF-8',
        'x-requested-with': 'XMLHttpRequest',
        'version': 2
      },
      responseType: 'blob',
    })
    HttpRequest.interceptors.request.use(config => {
      let localToken = decodeURIComponent(getCookieItem('microServiceToken'));
      if (localToken) {
        config.headers['token'] = localToken
      }
      if(config.url.indexOf('/pass-formData') !== -1){
        config.url = config.url.substring(0,config.url.length-14);
        config.headers['Content-Type'] = 'multipart/form-data; charset=UTF-8';
      }else {
        config.headers['Content-Type'] = 'application/json; charset=UTF-8';
      }
      // loadingInstance = Loading.service({fullscreen: true, background: "rgba(0, 0, 0, 0.7)"});
      let data = config.data;
      if(data != undefined){
        let keys = Object.keys(data);
        for (let i = 0; i < keys.length; i++) {
          let value = data[keys[i]];
          let tmpKey = keys[i];
          if (typeof(value) === 'string') {
            if(!value){
              delete data[tmpKey];
            }
          }
        }
        config.data = data;
      }
      return config
    }, error => {
      Promise.reject(error)
    })

    HttpRequest.interceptors.response.use(
      response => {
        // loadingInstance.close();
        return response.data;
      },
      error => {
        // loadingInstance.close();
        Message({
          message: error.message,
          type: 'error',
          duration: 5 * 1000
        })
        return Promise.reject(error)
      })

    export default HttpRequest
  • 相关阅读:
    struts传值方式ModelDriven的使用
    sql查询count 单独字段不同值
    图片-文件上传下载
    HTML 字符实体 &lt; &gt: &amp;等
    Validation failed for object='employee'. Error count: 1问题解决
    MySQL查询本周、上周、本月、上个月份数据的sql脚本
    React前端框架路由跳转,前端回车事件、禁止空格、提交方式等方法
    环境变量误删path找回方法与mysql基础命令
    树结构的控制
    数据库查询方法
  • 原文地址:https://www.cnblogs.com/xiaoxiao95/p/12726360.html
Copyright © 2020-2023  润新知