axios里的responseType

2021-05-17  本文已影响0人  小遁哥

背景

我在Node.js上通过axios下载一段音频

const audioContent = await axios.get(downloadSrc, {
 });

打开文件后竟然提示文件格式损坏
凭借我多年朴素的直觉,应该是要设置responseType:'blob',还是不行,直到一顿搜索引擎,发现了responseType: "arraybuffer", 可以了

看axios源码

我想一定是axios根据responseType: "arraybuffer"对返回类型做了什么特殊处理,结果看了半天源码也没发现端倪,凭借我多年朴素的直觉,我想到了XMLHttpRequest

XMLHttpRequest

XMLHttpRequest 本身就是支持responseType

    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);
      }
    };

上一篇 下一篇

猜你喜欢

热点阅读