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

Javascript 如何在axios中将无效数据输出为404,javascript,http,axios,Javascript,Http,Axios,我正在使用vue+axios发出请求。通常是这样的: axios.get('/url').then(response => {} ).catch(error => {}) 如果HTTP响应不是404,那么它将捕获响应,但是如果是404,那么它将在捕获中捕获 但有时我希望将响应视为错误。例如,如果GET/userresponse200ok,但数据中没有用户,如何将该响应传输到catch块 使用axios是否可以这样做,或者它是否只返回基于HTTP状态代码的响应/错误?这应该发生在您的

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

axios.get('/url').then(response => {} ).catch(error => {})
如果HTTP响应不是404,那么它将捕获响应,但是如果是404,那么它将在捕获中捕获

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


使用axios是否可以这样做,或者它是否只返回基于HTTP状态代码的响应/错误?

这应该发生在您的服务器上。如果没有用户,处理请求的服务器应该返回404响应错误。

这应该发生在您的服务器上。如果没有用户,处理请求的服务器应该返回404响应错误。

您可以抛出错误,让catch块处理您的答案:

axios.get('/url').then(response => {
    if (/* you're not satisfied with the response*/) {
         throw new Error("I'm not satisfied");
    }
}).catch(error => {})

您可以抛出一个错误,让catch块处理您的答案:

axios.get('/url').then(response => {
    if (/* you're not satisfied with the response*/) {
         throw new Error("I'm not satisfied");
    }
}).catch(error => {})

您可以始终使用这样一个事实,即在JavaScript中,您可以使用函数共享行为

function handleError (error) { ... };

axios.get('/url').then(response => { 
    if( "some condition" ) {
       handleError("Some unmet condition");
    }  
).catch(handleError);

您可以始终使用这样一个事实,即在JavaScript中,您可以使用函数共享行为

function handleError (error) { ... };

axios.get('/url').then(response => { 
    if( "some condition" ) {
       handleError("Some unmet condition");
    }  
).catch(handleError);

数据验证和404HTTP响应应该在服务器端进行。如果真的是坏数据,那么应该更像是400个坏请求响应。数据验证和404HTTP响应应该在服务器端进行。如果它是真正的坏数据,那么它应该更接近于400个坏请求-响应。