vue 二進制流文件導出、下載,兼容IE


this.$ajax({
                method: 'GET',
                url: '你的url',
                headers: {
                    'Authorization': tokenUtil.getToken(), // 我的token
                    'Content-Type': "application/json;charset=utf-8"
                },
                responseType: 'blob',  // 很重要
                params: params // 請求入參
            })
            .then(res =>{
                // console.log(res)
                let headersName = '';
                if(res.headers['content-disposition']) {
                    headersName = res.headers['content-disposition'].split('=')[1];
                }
                 else {
                    headersName = '文件名稱';
                }
                let fileName = decodeURI(headersName);
                let blob = new Blob([res.data], {type: 'application/vnd.ms-excel'});  // 注意你的文件類型,我的是excel,需要什么類型文件,對應修改即可
                // IE兼容
                if (window.navigator.msSaveOrOpenBlob) {
                    window.navigator.msSaveOrOpenBlob(blob, fileName);
            } else {
                    var a = document.createElement('a');
                    a.download = fileName;
                    a.href = URL.createObjectURL(blob);
                    a.setAttribute("id", "export");
                    document.getElementById("platform").append(a); // 修復firefox中無法觸發click, platform 為我本頁div 的id, 此處可直接用document.body
                    a.click();
                    document.getElementById("export").remove();
                }
                this.loading = false;
            })
            .catch(err =>{
                this.loading = false;
            })


免責聲明!

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



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