下载接口返回的文件流

2022-04-01  本文已影响0人  LingSun

原生写法

var xhr = new XMLHttpRequest();
            xhr.open("POST", exportOrganExcel);
            xhr.setRequestHeader('Content-Type', 'application/json')
            xhr.responseType = 'blob'    //  这个必须设置
            xhr.send(JSON.stringify(params));
            xhr.onload=function(){
                if(xhr.status === 200) {
                    // 通过Blob转化文件流并下载
                    let blob = new Blob([xhr.response], { type: "application/x-xls" });  // xhr.response--后台返回的文件流
                    let link = document.createElement("a");
                    link.href = window.URL.createObjectURL(blob);
                    link.setAttribute('download', `列表名称.xls`)
                    document.body.appendChild(link)
                    link.click()
                    document.body.removeChild(link)

                    
                }
            }

axios请求

      axios({
            method: 'get',
            url: `/huishanModel/export/model`,
            responseType: 'blob'
        })
            .then(res => {
                let blob = new Blob([res.data], { type: 'application/x-xls' }); //res.data--后台返回的文件流
                let link = document.createElement('a');
                link.href = window.URL.createObjectURL(blob);
                link.setAttribute('download', `文件名称.xls`);
                document.body.appendChild(link);
                link.click();
                document.body.removeChild(link);
            })
            .catch(Error => {
                reject(Error);
            });
上一篇下一篇

猜你喜欢

热点阅读