Vuex axios call can#39;t handle 422 response(Vuex axios呼叫可以处理422响应)
本文介绍了Vuex axios呼叫可以处理422响应的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试处理来自API的422响应,以防在进行异步Axios调用时数据无效。
在组件中,我有如下方法:
async saveChanges() {
this.isSaving = true;
await this.$store.dispatch('updateSettings', this.formData);
this.isSaving = false;
}
在我这样的行为中:
let response;
try {
response = await axios.put('/api/settings', settings);
console.log(response);
} catch (e) {
console.log('error');
console.log(e);
}
如果请求成功,则一切正常,我会得到响应。但是,如果响应状态代码为422,则不会失败或抛出异常,并且响应为空。我已尝试使用.then(()).catch(())
,但也没有成功,因为我需要它是异步的。
有什么建议我可能做错了什么吗?
推荐答案
默认情况下,Axios仅针对介于200和300之间的Http状态代码引发错误。
通过设置validateStatus
:
axios.put('/api/settings', settings, {
validateStatus: status => status >= 200 && status < 300 || status === 422
})
或检查正常回调中的状态码:
response = await axios.put('/api/settings', settings);
if (response.status === 422) {
// throw error
}
这篇关于Vuex axios呼叫可以处理422响应的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:Vuex axios呼叫可以处理422响应
基础教程推荐
猜你喜欢
- 角度Apollo设置WatchQuery结果为可用变量 2022-01-01
- 当用户滚动离开时如何暂停 youtube 嵌入 2022-01-01
- 在for循环中使用setTimeout 2022-01-01
- 响应更改 div 大小保持纵横比 2022-01-01
- 动态更新多个选择框 2022-01-01
- Karma-Jasmine:如何正确监视 Modal? 2022-01-01
- 悬停时滑动输入并停留几秒钟 2022-01-01
- 我什么时候应该在导入时使用方括号 2022-01-01
- 有没有办法使用OpenLayers更改OpenStreetMap中某些要素 2022-09-06
- 在 JS 中获取客户端时区(不是 GMT 偏移量) 2022-01-01