今天遇到测试提的bug报错,一个导入文件出错,后端有错误信息,前段为什么没有弹出,因为项目里所有报错都是架构里做的,所有请求都是用的axios,在请求拦截里做了错误消息提示。查找之后发现原因所在,用的el-uoload组件,他用action提交的,没有走请求拦截,所以要在uplaod的on-error回调里做一个错误信息提示,原因和解决思路都明确了,但是on-error这里拿到后端返回的消息却遇到了问题,这才是这篇博客要说的,费了一番功夫,圆满解决。
上图是打断点得到的on-error函数返回的err信息,处理过程,先同toString变成字符串后用replace方法去掉Error: 得到部分就是json信息了,之后用JSON.parse()转换一下,就能得到前段的对象了,下面是代码
error (err) {
let error = err.toString()
error = JSON.parse(error.replace('Error: ', ''))
//状态控制
this.form.loading = false
//消息弹出组件
Notification({
title: '导入失败',
message: error.errors[0].message
})
},