gpt4 book ai didi

javascript - 如何正确处理axios错误以及如何获取详细的错误描述?

转载 作者:行者123 更新时间:2023-11-28 03:28:37 26 4
gpt4 key购买 nike

我有关于 axios 和错误处理的问题。所以这是我用来处理用户从前端登录时出现的错误的方法:

    axios.post('http://localhost:3001/login',
{
login: user.login,
password: user.password,
}
)
.then(
(response) => {
// code
},
(error) => {
// error handling
}
);

这是第二种方法:

    axios.post('http://localhost:3001/login',
{
login: user.login,
password: user.password,
}
)
.then(
(response) => {
// code
}
).catch((error) => {
// error handling
});

最好的方法是什么?是一样的吗?当服务器无法访问时,错误消息相同:“网络错误”。有什么办法可以得到更详细的错误信息吗? (例如在控制台中我收到 CORS 错误)

最佳答案

错误可能发生在不同部分 - 请求、响应。

没有响应时会发生请求错误。像 404 等,没有默认响应。

当 API 发送自定义响应来处理错误时,会出现响应错误。

我以前是这样处理的:

const handleErrorResponse = (error) => {
let errorResponse;
if(error.response && error.response.data) {
// I expect the API to handle error responses in valid format
errorResponse = error.response.data;
// JSON stringify if you need the json and use it later
} else if(error.request) {
// TO Handle the default error response for Network failure or 404 etc.,
errorResponse = error.request.message || error.request.statusText;
} else {
errorResponse = error.message;
}
throw new Error(errorResponse);
}

现在,

axios.get(/foo/bar)
.then(res => doSOmething())
.catch(err => handleErrorResponse(err))

我使用错误处理作为字符串的错误响应。如果需要,您也可以将它与 axios 拦截器一起使用。

关于javascript - 如何正确处理axios错误以及如何获取详细的错误描述?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58386395/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com