我有一个nativescript vue.js应用程序,当用户单击使用axios的登录名时,该应用程序会击中端点以获取令牌。
当仿真器电话离线时,仍然会发出axios呼叫,然后执行该命令,就好像有一个成功的请求一样,查看“网络”选项卡上有一个请求,但该请求永远挂起,并且axios呼叫立即返回
如果我在基于浏览器的应用程序中运行axios,它似乎不会以相同的方式失败。
这是我的呼叫代码:
methods:{
submit()
{ this.axios.post('https://backendauth.free.beeceptor.com/api/login',this.user)
.then((response) => {
console.log('Detected as a success')
console.log(response.status)
console.log(response)
console.log(response.data.success.token)
this.data = JSON.stringify(response.data)
this.$navigateTo(this.$router['home'])
}).catch((err)=>{
if (err.response.status === 401) {
console.log(err)
}
else
{
console.log(err.response)
}
})
this.submitting = 'form clicked'
}
我已经创建了一个仓库来证明这一点
https://github.com/jachno/basicAuth
此图显示控制台请求已成功在线连接设备
这显示了通过网络进行的呼叫
这显示了处于飞行模式的网络待处理请求
这现在显示设备处于飞行模式时控制台的外观:
答案 0 :(得分:3)
当Http调用失败时,状态设置为null
,Axios认为成功。因此,解决方法可能是在成功回调中验证您的状态是否为null
。如果为null
,则将其视为失败。
您还可以检查connectivity是否设置为none,以了解您的设备是否真正离线。
您可能想在Github repo中提出一个与此有关的错误。