您可以从axios中的响应对象中提取status codes
如果您打印响应对象(如下图所示),您可以看到响应对象内的所有对象。其中之一是status object
response.status 将为您提供从服务器发送的状态代码
axios.get("http://localhost:3000/testing").then((response)=>{
console.log("response ",response);
if(response.status == 200){
//do something
}
else if(response.status == 202){
//do something
}
else if(response.status == 301){
//do something
}
}).catch((err)=>{
console.log("err11 ",err);
})
在服务器端,您可以使用res.status() 方法显式发送任何状态码,更多详细信息请参阅this documentation
app.get('/testing',(req, res)=> {
res.status(202).send({"res" : "hi"});
});
更新:
默认情况下,@nuxtjs/axios 在.then((response)) 中返回response.data
$axios.onResponse 事件将有权访问完整的响应对象。
需要设置拦截器来拦截$axios.onResponse事件并修改响应对象
在插件目录下创建一个插件,plugin/axios.js
更新plugins 部分plugins : ['~/plugins/axios']
在nuxt.config.js
export default function ({ $axios, redirect }) {
$axios.onResponse(res=>{
console.log("onResponse ", res);
res.data.status = res.status;
return res;
})
}
在此拦截器的res object 中,您将拥有所有值(如我的第一个屏幕截图所示)。但是这个res object 并没有按原样返回,只有res.data 被返回给我们的程序。
我们可以更新res.data 中的内容,然后返回res object,如我的程序res.data.status = res.status; 所示。
现在当axios 返回res.data 时,我们将可以访问response 承诺中response 对象中的res.data.status 值
您可以在this.$axios 中使用response.status 访问状态
this.$axios.$get("url").then((response) =>{
console.log("status ",response.status);
}).catch((err) => {
console.log("res err ",err);
});