axios中的responseType參數說明


      在做excel導出的時候,發現需要自行用axios封裝一個請求函數,其中主要的修改就是將axios中的配置項responseType進行修改,后端返回的是數據流,所以就使用Blob。需要注意的是如果返回的二進制buffer流,需要修改為arraybuffer。如果發現導出的文件格式錯誤,打不開,多半是responseType的錯誤,通過對axios源碼的分析,發現了XMLHttpRequest 

 

XMLHttpRequest

XMLHttpRequest  自身就支持responseType

<1>" "

responseType 為空字符串時,采用默認類型 DOMString,與設置為 text 相同。

<2>arraybuffer

response 是一個包含二進制數據的 JavaScript ArrayBuffer。

<3>blob

response 是一個包含二進制數據的 Blob 對象 。

<4>document

response 是一個 HTML Document 或 XML XMLDocument,這取決於接收到的數據的 MIME 類型。請參閱 XMLHttpRequest 中的 HTML 以了解使用 XHR 獲取 HTML 內容的更多信息。
<5>json
response 是一個 JavaScript 對象。這個對象是通過將接收到的數據類型視為 JSON 解析得到的。
<6>text
response 是一個以 DOMString 對象表示的文本。
<7>ms-stream
response 是下載流的一部分;此響應類型僅允許下載請求,並且僅受 Internet Explorer 支持。
 
    var ajaxObj = new XMLHttpRequest(); ajaxObj.responseType = "arraybuffer"; ajaxObj.open("get", "http://10.210.2.133:9192/example/api/simple/object"); ajaxObj.send(); ajaxObj.onreadystatechange = function () { if (ajaxObj.readyState == 4 && ajaxObj.status == 200) { console.log(ajaxObj.responseText); } };

 

 

 

 


免責聲明!

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



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