如果Axios请求在我的Vue.js应用程序中失败,我无法访问错误(响应)状态代码。我无法弄清楚为什么响应在'.catch'和'axios.interceptors. response'中都未定义。我遵循了这个instruction,它演示了'error.response'可以通过这样的代码轻松访问:
axios.interceptors.response.use(
(response) => {
console.log(response);
return response;
},
(error) => {
handleApiFail(error.response);
});
字符串
如果我将此代码添加到我的应用程序中的'main.js'中,当请求失败时会调用'Error ApiFail',但第二个lambda中未定义error.response,并且不会调用第一个lambda。如果请求成功,则第一个lambda中的'response'被定义并具有状态代码。
4条答案
按热度按时间w8rqjzmb1#
我有这样的代码:
字符串
于是,我发现我错过了返回我的“错误”的承诺拒绝,正确的是这样的:
型
nx7onnlm2#
缺乏
字符串
响应中的头导致浏览器阻止了我的请求。
添加header使axios工作正常。
6jygbczu3#
这是axios的一个特性。一个快速的解决方案是序列化响应:
字符串
请参阅此GitHub问题以获取更多信息:https://github.com/axios/axios/issues/960
正如有人指出的那样,你可以检查动作中的错误状态代码,并根据它运行其他的提交。
xggvc2p64#
以下是在某些情况下可能有所帮助的操作:
字符串
然后尝试读取
error.propertyNames
或error["propertyNames"]
谢谢