axios设置 responseType: 'blob'

大略是这样:

axios({    method: 'get',     url: url, //  接口地址或者文件地址    responseType: 'blob'})

如果在拦截器里设置,这样写:

instance.interceptors.request.use(    config => {        if (options.isDownloadFile) {            config.responseType = 'blob'        }})
let option = {    jonId: 1}let fileName = '作业1'download(option, fileName)function download(option, fileName){    //  request 函数是用 axios 封装的申请组件    return request({        url: '/api/job/export',        data: option,        needCamelCase: false,        isDownloadFile: true,        needLoading: true    }).then((data) => {        fileName = (fileName || '导出作业').trim()        saveFile(data, fileName + '.xlsx')    })}function saveFile(data, fileName) {    let file = data    let url = window.URL || window.webkitURL;    let fileURL = url.createObjectURL(file);    let a = document.createElement("a");    a.href = fileURL;    a.download = fileName;    a.target = "_self";    a.click();    url.revokeObjectURL(fileURL);}