在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ 使用XMLHttpRequest導(dǎo)出excel

使用XMLHttpRequest導(dǎo)出excel

問題描述

使用XMLHttpRequest導(dǎo)出excel,但responseType有可能是blob,或者是json

相關(guān)代碼

    var xhr = new XMLHttpRequest();
    xhr.open('get', url, true);
    xhr.responseType = "blob"; // 返回類型blob  blob 存儲著大量的二進制數(shù)據(jù)
    xhr.onload = function () {
        console.log(xhr)
        if (this.status === 200) {
            var blob = this.response;
            var reader = new FileReader();
            reader.readAsDataURL(blob); // 轉(zhuǎn)換為base64,可以直接放入a標(biāo)簽href
            reader.onload = function (e) {
                var a = document.createElement("a"); // 轉(zhuǎn)換完成,創(chuàng)建一個a標(biāo)簽用于下載
                a.download = name + ".xls";
                a.href = e.target.result;
                $("body").append(a); // 修復(fù)firefox中無法觸發(fā)click
                a.click();
                $(a).remove();
            };
        }
    }
    xhr.send(); // 發(fā)送ajax請求

你期待的結(jié)果是什么?實際看到的錯誤信息又是什么?

response有可能不是文件,而是一個錯誤的提示語(導(dǎo)出過程中出錯了或沒數(shù)據(jù)導(dǎo)出),這時候如果responseType已經(jīng)設(shè)置成了blob咋整?responseType只能在發(fā)請求前就定義好了么

回答
編輯回答
你好胸
xhr.getResponseHeader("Content-Type")//查看返回類型 如果是json 把blod轉(zhuǎn)string再轉(zhuǎn)json
2017年6月20日 10:38