axios和ajax对响应是文件流用blob处理

先看axios请求处理,下载文件

this.$axios.get(api.exportMortgageOrderExcelVisit, { params: params, responseType: 'blob'})
            .then(res => {
              let url = window.URL.createObjectURL(new Blob([res]))
          let link = document.createElement('a')
          link.style.display = 'none'
          link.href = url
          let excelName = '下载文件.xlsx'
          link.setAttribute('download', excelName)
          document.body.appendChild(link)
          link.click()
            })
            .catch(() => {
              
            })

ajax请求,文件转换成图片(使用原生ajax,因为jquery没有blob数据格式)

     var xhr = null;
        if(window.XMLHttpRequest) {
          xhr = new XMLHttpRequest();
        } else {
          xhr = new ActiveXObject("Microsoft.XMLHTTP");
        }
xhr.open(
"GET",$apiClent.getLoginImgCheckCode,true); xhr.responseType = "blob"; xhr.send(); xhr.onreadystatechange = function(){ if(xhr.readyState == 4 && xhr.status == 200){ console.log(xhr.getResponseHeader('codeNum')) var imgUrl = window.URL.createObjectURL(new Blob([xhr.response])) $('#verification-img').attr('src', imgUrl) } }
原文地址:https://www.cnblogs.com/mk2016/p/13566998.html