我目前正在尝试使用Javascript打印嵌套错误,但是我似乎只能将内部消息作为String来获取:
axios.post('http://localhost:8080/axios, data)
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error.response.data.message);
});
状态500读取Api#create(String,String,Request);内容: {“ timestamp”:“ 2018-10-30T12:08:40.524 + 0000”,“状态”:500,“错误”:“内部服务器错误”,“消息”:“ EntityStateError [message =这是我的实际错误我想打印。,code = 400,service = Service,embeddedErrors =] \ r \ n“,” path“:” / axios“}
我只想在消息后打印错误(“这是我的实际错误...”)。
我以为我可以将其解析为JSON,但是当我使用
console.log(JSON.parse( '"' + error.response.data.message + '"'));
我收到以下错误:
未捕获(承诺)SyntaxError:意外令牌 JSON中JSON.parse()的位置97
如何在错误响应中访问实际消息?
error.response.data本身:
{时间戳:“ 2018-10-30T13:31:09.097 + 0000”,状态:500,错误:“内部服务器错误”,消息:“状态500读取Api#create / axios”}“,路径:” / axios“} 错误:“内部服务器错误” 消息:“状态500读取Api#create(String,String,Request);内容:↵{” timestamp“:” 2018-10-30T13:31:09.076 + 0000“,”状态“:500,”错误“:”内部服务器错误“,”消息“:” EntityStateError [message =这是我要打印的实际错误。,code = 400,service = Cancellation,embeddedErrors =] \ r \ n“,”路径“:” / axios“}” 路径:“ / axios” 状态:500 时间戳:“ 2018-10-30T13:31:09.097 + 0000”
答案 0 :(得分:0)
我现在找到了一种解决方案,将收到的字符串拆分为仅剩下消息和代码之间的部分(返回我要打印的错误消息)。
let innerError = error.response.data.message;
innerError = innerError.split('content:\n')[1];
innerError = innerError.split('message=').pop().split(',code=')[0];
console.log(innerError);
但是,这并不是一个干净的解决方案,因此,如果有人愿意提供帮助,我仍在寻找输入。
答案 1 :(得分:-1)
.catch(err){
throw err.message;
}