原生XMLHttpRequest实现文件流下载

    var url = '//download';
    var xhr = new XMLHttpRequest();
     // 也可以使用POST方式,根据接口
    xhr.open('GET', url, true);    
    xhr.setRequestHeader('Authorization', "testAuthorization");
    // 返回类型blob
    xhr.responseType = "blob";  
    // 定义请求完成的处理函数,请求前也可以增加加载框/禁用下载按钮逻辑
    xhr.onload = function () {
      // 请求完成
      if (this.status === 200) {   // 返回200
        var blob = this.response;
        var reader = new FileReader();
        reader.readAsDataURL(blob);  // 转换为base64,可以直接放入a表情href
        reader.onload = function (e) {
          // 转换完成,创建一个a标签用于下载
          var a = document.createElement('a');
          var nameFile = `文件名称.docx`
          a.download = nameFile;
          a.href = e.target.result;
          $("body").append(a);  // 修复firefox中无法触发click
          a.click();
          $(a).remove();
        }
      }
    };
    xhr.send();
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容