如何在axios中输出无效数据404

时间:2018-01-22 13:46:15

标签: javascript http axios

我正在使用vue + axios发出请求。通常是这样的:

axios.get('/url').then(response => {} ).catch(error => {})

如果HTTP响应不是404,这将捕获响应,但如果它是404,它将被捕获在catch中。

但有时我希望将响应视为错误。例如,如果GET /user响应200 OK,但数据中没有用户,如何将该响应转移到catch块?

是否可以使用axios执行此操作,还是仅根据HTTP状态代码返回响应/错误?

3 个答案:

答案 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);