非文件流建议使用window.open(url)
流下载格式示参考下面示例:

//BaseAxios是axios示例名称
BaseAxios({
  method:'post',
  url:'xxx',
  data:params,
  responseType:'blob'
})
.then((res) => {
    const blob = new Blob([res.data])//构造一个blob对象来处理数据
    const fileName = 'name.xls'

    if ('download' in document.createElement('a')) { //支持a标签download的浏览器
      const link = document.createElement('a')//创建a标签
      link.download = fileName//a标签添加属性
      link.style.display = 'none'
      link.href = URL.createObjectURL(blob)
      document.body.appendChild(link)
      link.click()//执行下载
      URL.revokeObjectURL(link.href) //释放url
      document.body.removeChild(link)//释放标签
    } else { //其他浏览器
      navigator.msSaveBlob(blob, fileName);
    }                
})
.catch((error) => {
    that.postErrorTip('请求失败');
});

太羽
361 声望6 粉丝

但行好事,莫问前程!