zoukankan      html  css  js  c++  java
  • axios 利用new FileReader() 下载文件获取返回的错误信息

    this.axios({
              method: "post",
              url: url,
              data: data,
              responseType: "blob" 
            })
              .then(res => {
                const data = res.data
                let r = new FileReader()
                r.onload = function () {
                  try {
                    let resData = JSON.parse(this.result)
                    console.log(resData)
                    if (resData && resData['code'] && resData['code'] != '1000') {
                     alert(resData.msg);//弹出返回的错误msg
                    }
                  } catch (err) {
                    let fileName = '下载文件名.xls'
                    // 兼容ie11
                    if (window.navigator.msSaveOrOpenBlob) {
                      try {
                        const blobObject = new Blob([data])
                        window.navigator.msSaveOrOpenBlob(blobObject, fileName)
                      } catch (e) {
                        console.log(e)
                      }
                      return
                    }
                   this.download(data, fileName)
                    alert('导出成功')
                  }
                }
                r.readAsText(data) // FileReader的API
              })
              .catch(e => {
                let msg = "网络异常";
                _that.isCanClick = true
                this.$Message.error(msg);
              });
     
     // 下载文件
        download(data, name) {
          if (!data) {
            return;
          }
          let url = window.URL.createObjectURL(new Blob([data]));
          let link = document.createElement("a");
          link.style.display = "none";
          link.href = url;
          link.setAttribute("download", name);
          document.body.appendChild(link);
          link.click();
        },
  • 相关阅读:
    HTML 特殊符号编码对照表
    jsp include file(变量) 动态加载文件
    PHP判断键值数组是否存在,使用empty或isset或array_key_exists
    [js方法pk]之instanceof() vs isPrototypeOf() hasOwnProperty() vs propertyIsEnumerable()
    js正则表达式语法 修正
    js正则表达式语法
    js正则表达式语法
    ASP中有关字符编码转换的几个有用函数
    详解js中typeof、instanceof与constructor
    事件穿透父层 直达子层 pointer-events:none
  • 原文地址:https://www.cnblogs.com/jiajiamiao/p/11607598.html
Copyright © 2011-2022 走看看