我正在使用vue + axios发出请求。通常是这样的:
axios.get('/url').then(response => {} ).catch(error => {})
如果HTTP响应不是404,这将捕获响应,但如果它是404,它将被捕获在catch中。
但有时我希望将响应视为错误。例如,如果GET /user
响应200 OK
,但数据中没有用户,如何将该响应转移到catch块?
是否可以使用axios执行此操作,还是仅根据HTTP状态代码返回响应/错误?
答案 0 :(得分:2)
您可以抛出错误,让catch块处理您的答案:
axios.get('/url').then(response => {
if (/* you're not satisfied with the response*/) {
throw new Error("I'm not satisfied");
}
}).catch(error => {})
答案 1 :(得分:1)
这应该发生在您的服务器上。处理请求的服务器应该在没有用户的情况下返回404响应错误。
答案 2 :(得分:1)
您始终可以使用以下事实:在JavaScript中,您可以使用函数共享行为。
function handleError (error) { ... };
axios.get('/url').then(response => {
if( "some condition" ) {
handleError("Some unmet condition");
}
).catch(handleError);