js 请求下载文件接口并下载

1.用axios做接口请求。
2.URL.createObjectURL() 静态方法会创建一个 DOMString,其中包含一个表示参数中给出的对象的URL。这个 URL 的生命周期和创建它的窗口中的 document 绑定。这个新的URL 对象表示指定的 File 对象或 Blob 对象。

function downFile(url, params) {
  axios({
    method: 'get',
    url,
    params,
    responseType: 'arraybuffer'
  }).then(res => {
    let blob = new Blob([res.data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' })
    let objectUrl = URL.createObjectURL(blob)
    //创建a标签链接并点击 start
    let link = document.createElement('a')
    link.style.display = 'none';
    link.href = objectUrl
    if (params.filename) {
      link.download = `${params.filename}.xlsx`
    }
    document.body.appendChild(link);
    link.click();
     //创建a标签链接并点击 end
    document.body.removeChild(link)
    window.URL.revokeObjectURL(blob)
  })
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容