如何从axios请求catch块的err对象中提取服务端返回的错误消息
问题解答
Axios对错误对象做了统一封装,对于服务端返回的4xx/5xx类HTTP错误,响应内容会挂载在错误对象的response属性下,你要提取的错误文本就存储在err.response.data中。
为了避免网络异常、跨域拦截等无响应返回的场景报错,建议先加一层存在性判断,修改后的代码如下:
export const register = async (credentials, dispatch) => { try { const res = await axios.post("/auth/register", credentials); dispatch(success(res.data)); document.cookie = res.data.access_token; } catch (err) { dispatch(register_error()); // 提取错误信息逻辑 let errMsg = "请求异常,请稍后重试" if (err.response) { // 服务端返回了错误响应,直接取data里的内容 errMsg = err.response.data } // 此处可根据业务需求处理错误信息,比如全局提示、打印日志等 console.log(errMsg) } dispatch(end()); };
如果需要排查错误对象的完整结构,可在catch块内打印完整对象查看:console.dir(err)
内容的提问来源于stack exchange,提问作者Bear Bile Farming is Torture
相关产品推荐
相关产品推荐

