vue3+axios下载哪后端返回错误信息并动态提示
//解释-由于下载,打印接口-请求的响应主体是文件内容,不能直接同时获取 JSON 格式的 success 和 message
//接口
export function exportModel(treeid: any, params: any) {return servicePost.post<any, any>(`/vdc/api/test/test?tree_id=${treeid}`, params, {responseType: "blob",})
}//下载const entries = Object.entries(internalSelection);const filteredEntries = entries.filter(([, value]) => value === true);let filteredObj = Object.keys(Object.fromEntries(filteredEntries));if(filteredObj.length==0){ElMessage.warning("请至少选择一条")return}let B = [...new Set(existList.value)]let result = filteredObj.filter(element => !B.includes(element));const res = await exportModel('',result)// 下载拿到success以及message信息const resText = await res.data.text()const rspObj = JSON.parse(resText)if (!rspObj.success) {return ElMessage.error(rspObj.message)}fileDownTable(res)//下载方法
这是打印下载拿到的所有响应主体
第二种解决办法:
下载使用两个接口,第一个接口用来判断当前文件是否可以下载,返回的是json,如果success返回true在走下载接口,后端返回响应主体~