前端接收下載后端文件流


說明:
這里是接收excel流的示例,故屬性為type: 'application/vnd.ms-excel',最重要的是responseType要設置為blob.
另外使用ajax是不行的,blob類型返回值無法解析,所以即使成功了也無法進入success回調。自己可以試一下,加深印象。

配套后端代碼地址:hutool工具包實現的導出實體到excel功能

// 導出excel數據表
function exportExcel(url, param, fileName) {
    url = baseURL + url;
    var xhr = new XMLHttpRequest();
    xhr.open('POST', url, true);
    xhr.responseType = "blob";
    xhr.onload = function() {
        if (this.status === 200) {
            var blob = new Blob([this.response], {
                type: 'application/vnd.ms-excel'
            });
            var reader = new FileReader();
            reader.readAsDataURL(blob);
            reader.onload = function(e) {
                var a = document.createElement('a');
                a.download = fileName;
                a.href = URL.createObjectURL(blob);
                $('body').append(a);
                a.click();
            }
        } else {
            alert("下載失敗");
        }
    };
    xhr.send(JSON.stringify(param));
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM