【发布时间】:2018-03-31 11:27:28
【问题描述】:
edit2:https://stackoverflow.com/a/37784969/107282 建议我不必担心,因为在真实设备上不会发生这种情况。
我在 VueJS 混合 (Cordova) 应用程序中使用 Axios,并且正在调用 API。
Axios 在我的 GET/POST 请求之前(正确地)执行“预检”OPTIONS 请求,但如果 API 在 那个 点返回 503,我的错误处理代码不会被调用。
HTTP.post(url, data, {headers: {Authorization: 'Bearer ' + token.getAccessToken()}})
.then(response => response)
.catch(error => {
// Not reached
});
如何捕捉这个错误状态?
编辑:来自 chrome 开发工具的屏幕截图:
【问题讨论】:
-
503的情况下response的内容是什么?response.data设置了吗? -
我使用 axios 并在 get 操作时遇到由 catch 块处理的 503 错误,状态为 error.response.status
-
503不是网络错误吗? axios 不处理网络错误。
-
@jezmck,我相信预检 OPTIONS 请求是由浏览器发送的,而不是由您的代码发送的,所以我认为它无法被甚至没有启动它的东西处理?
-
仅供参考:我刚刚通过将 Fiddler 设置为以 503 响应任何 OPTIONS 请求来快速测试这一点,并且仍然能够使用
axios捕获错误。你用的是什么浏览器/axios 版本?
标签: javascript http vue.js http-headers axios