美文网首页
Axios POST 下载

Axios POST 下载

作者: namecho | 来源:发表于2020-05-11 09:55 被阅读0次
postDownload(url, params = {}, data = {}) {
  return new Promise((resolve, reject) => {
    axios.defaults.headers.post['Content-Type'] = 'application/json;charset=UTF-8';
    axios.post(url, params, {
      params: data,
      responseType: "blob"
    })
      .then(response => {
        if (response.status == 204) {
          window.vm.$message('无可导出数据')
          return
        }
        let headers = response.headers;
        let name = headers['content-disposition'];
        let filename = "";
        var t = /filename="([^;]*);?"/i.exec(name);
        null === t && (t = /filename=([^;]*);?/i.exec(name));
        if (null !== t && t.length > 1) {
          filename = decodeURIComponent(t[1]);
        }
        let blob = new Blob([response.data], {
          type: "application/octet-stream"
        });
        let downloadElement = document.createElement('a');
        let href = window.URL.createObjectURL(blob);
        downloadElement.href = href;
        downloadElement.download = filename;
        document.body.appendChild(downloadElement);
        downloadElement.click();
        document.body.removeChild(downloadElement);
        window.URL.revokeObjectURL(href);
        resolve(response.data);
      }, err => {
        reject(err)
      })
  })
}

相关文章

网友评论

      本文标题:Axios POST 下载

      本文链接:https://www.haomeiwen.com/subject/oimynhtx.html