获取后台返回的错误码
获取后台返回的错误码
- 场景
- 问题
- 解决方法
场景
后端要求前端同学,在调用接口的时候做出判断,若状态码status
为401时,要进行特殊的逻辑处理。
问题
先来看下我的请求代码:
fetchBoleInvitation() {IBOX.waxios({url: '/api/tgac/bole/invitation'}).then(({ret, data}) => {if (ret === 0) {this.showBoliPop(data.invite_code)} else {this.showTip(data || `网络异常,请稍后重试!\n(${ret})`)}}).catch((error) => {this.showTip('请求失败,请稍后再试!')})
},
如果status
为 401 的话,走的应该是catch...error...
的逻辑,所以打印这个error
就可以得到一切想要的字段,比如status
,code
…但结果并不是,直接打印error
,得到如下效果:
我们发现返回了一个貌似message
,而这个message
还不是后端给的。最让人生气的是,打开浏览器控制台,居然可以看到401以及后端给的message
!
解决方法
最后发现,打印error
是没有用的,应该打印的是error.response
,你想要的status
和code
以及data
里面的数据都有了。
catch((error) => {this.showTip('请求失败,请稍后再试!')if (error.response.status === 401) {// 特殊逻辑处理}
})