vue项目,调用接口下载文件の问题

如果是直接用a标签,href指向文件地址可以下载,但是如果调用接口去下
载就不成功了:

后端接口代码如下:
image

前端代码如下:
image
image

此时点击链接触发click事件返回的数据如下
image
image

请问是哪里出了问题吗?

阅读 5.7k
2 个回答

downloadRFRepost 方法生成一个 a 标签, href 为下载地址, download 属性为文件名, click 它, 然后移除这个标签


axios.get(url,{responseType: 'blob'})

.then((response) => {

    let name =  this.name +  '.pdf';

    var blob = response.data;

    if (window.navigator.msSaveOrOpenBlob) {

    navigator.msSaveBlob(blob, name);

    } else {

    var a = document.createElement('a');

    a.download = name;

    a.style.display =  "none";

    a.href = URL.createObjectURL(blob);;

    document.body.appendChild(a); // 修复firefox中无法触发click

    this.isLoading =  false;

    a.click();

    document.body.removeChild(a)

    }

  })

  .catch(function(error) {

    console.log(error);

   });
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
1 篇内容引用
推荐问题
宣传栏