我有一个vue js应用程序,它使用axios打开一个新的选项卡。下面是密码。
var win = window.open('')
win.document.body.innerHTML = Constants.LOADING_HTML
axios.get('/api/inventory/report?vehicleId=' + id, {
}).then(reporthtml => {
win.document.body.innerHTML = reporthtml.data
}).catch(error => {
win.document.body.innerHTML = error.response.data
win.document.title = 'Error'
})
在我的电脑上测试的时候,这个电话工作得很好。然而,在iphone或ipad上进行测试时,第一个发出的请求会抛出一个错误。关闭已打开的选项卡,然后再次进行调用后,它将正确工作,所有后续调用也会正常工作。
在通过safari进行调试时,当调用失败时,我会在控制台中看到以下错误。第一个选项调用看起来是正确返回的。但是如果没有响应消息或响应代码,get就会失败。当查看api日志时,调用看起来会成功并返回适当的数据。
看起来这个陷阱正在被击中,但不是因为api,因为error.response是空的。当检查只是错误时,它表示网络错误。
有人知道是什么导致了这一切吗?我也尝试过禁用ios上的弹出块,但没有成功。
谢谢。
发布于 2018-09-14 19:31:45
我知道问题出在哪里了。我对api的调用有一个异步http调用,该调用在api调用完成后返回。看来ios不喜欢这样。使http调用同步后,错误被解决。
https://stackoverflow.com/questions/52286387
复制