我在abcd.js中有以下代码:
$http({url: 'some url' , method: 'POST', data: , headers: {}
}).then(function(response)) {
.............
}, function error(response) {
..............
})
在出错的情况下,response.status = -1的值, response.statusText =“”。基本上没有用的信息。但是,在Chrome调试器控制台输出中,我看到:
POST:一些URL / analysis.php net :: ERR_NETWORK_IO_SUSPENDED
chrome调试器从analysis.php网络数据包中提取实际错误并显示它。 Q1:为什么status和statusText没有有用的信息?
Q2:是否有可能以编程方式获取网络错误?在上面的失败示例中,我将其视为ERR_NETWORK_IO_SUSPENDED。
问题3:当$ http()失败时,以编程方式还有其他方法来解决网络错误吗?
答案 0 :(得分:1)
Q1:为什么status和statusText没有有用的信息?
因为您无法访问服务器,所以您无法从服务器获得有用的状态代码。
Q2:是否可以通过编程方式获得网络错误?
您可以将timeout
设置为$ http以手动捕获网络问题。
问题3:当$ http()失败时,以编程方式还有其他方法来解决网络错误吗?
利用$ http的错误回调? (我对此不太了解)
答案 1 :(得分:0)
经过大量谷歌搜索后,我发现当我得到状态= -1时,由于某些未知原因,根本就没有达到服务器。所有未知原因都捆绑在一个错误字符串ERR_NETWORK_IO_SUSPENDED下。我得到-1,现在我只是将错误字符串硬编码为ERR_NETWORK_IO_SUSPENDED。对于其他错误代码,例如400,404,状态确实得到错误的statuText具有正确的字符串。所以这确认$ http()调用没问题。据说我们可以结案。感谢所有帮助我们得出这个结论的人。