乐趣区

关于axios:axios-二次封装的两个小点文件下载和-put-请求的-params-传参

一、应用 axios 下载文件

1、创立一个对象,用于配置接口信息

  let myObj={
    url: process.env.VUE_APP_BASE_API + api/studentList',
    method: 'get',
    fileName: 'studengListFile',
    params:{接口的 params 参数}
  }

2、封装一个 axios 下载文件的办法

exportMethod(data) {
  axios({
    method: data.method,
    url: `${data.url}`,
    responseType: 'blob',
    params:data.params?data.params:null
  }).then((res) => {if(res.data.type=='application/octet-stream'){const link = document.createElement('a')
      let blob = new Blob([res.data], {type: 'application/vnd.ms-excel'})
      link.style.display = 'none'
      link.href = URL.createObjectURL(blob)
      link.download = data.fileName // 下载的文件名
      document.body.appendChild(link)
      link.click()
      document.body.removeChild(link)
      return;
    }
    var reader=new FileReader()
    reader.onload=e=>{let res=JSON.parse(e.target.result);
      let error_html="<p><div>"+(i18n.tc(res.key) || 'Error');
      error_html+="</div></p>";
      let msg= Message({
        dangerouslyUseHTMLString:true,
        message: error_html,
        type: 'error',
        duration: 5 * 1000
      })
    }
    reader.readAsText(res.data)

  }).catch(error => {console.log('接口调用失败:',error)
  })
}

3、调用办法,并传入后面配置的接口对象

exportMethod(myObj)

二、PUT 申请 params 传参蕴含数组的解决方法

先写代码了,今天持续

退出移动版