Javascript 如何正确处理axios错误以及如何获得详细的错误描述?
我有一个关于axios和错误处理的问题。这就是我用来处理用户从前端登录时出现的错误的方法:Javascript 如何正确处理axios错误以及如何获得详细的错误描述?,javascript,reactjs,axios,Javascript,Reactjs,Axios,我有一个关于axios和错误处理的问题。这就是我用来处理用户从前端登录时出现的错误的方法: axios.post('http://localhost:3001/login', { login: user.login, password: user.password, } ) .then( (response) => { // code
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错误)这是无效的,
然后
接受单个参数
.then(
(response) => {
// code
},
(error) => {
// error handling
}
);
只有这是有效的
.then(
(response) => {
// code
}
).catch((error) => {
// error handling
});
错误可能发生在不同的部分-请求、响应 没有响应时会发生请求错误。比如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拦截器一起使用。不是这样。它是反应和错误的简写。双管齐下
axios.get(/foo/bar)
.then(res => doSOmething())
.catch(err => handleErrorResponse(err))