我有一个使用axios get方法的函数,并且在承诺返回时我添加了错误处理来处理我尝试连接的服务已被禁用的情况.
axios.get('/someurl') .then(() => { // this does not matter }) .catch((err) => { logger.error(TAG, 'postCreateVm', err); return reply(Boom.forbidden(err.message)); });
当我使用curl时,我可以看到消息,响应状态为403:
# curl -X GET localhost:3000/someurl { "message": "abort" }
问题是,当我尝试访问"消息"属性时我什么也得不到,但我知道它就在那里!(我也试过使用err.response.data也没有成功)
根据文档我应该能够访问它:axios处理错误
访问此消息的正确方法是什么?
我查看了他的代码,看起来正确的响应是在错误中,但是在axios中,sett.js用一般的响应来掩盖它.您可以通过将catch块中的错误对象记录为字符串化JSON来查看服务器响应:
console.log('caught:::', JSON.stringify(response, null, 2))
所以在我的情况下,我通过访问返回的错误来修复它:
error.response.data.message