使用$http
服务拨打电话时,如果用户在呼叫仍处于进行中时离开该页面,则看起来HTTP请求被中止,并且承诺呼叫其error()
处理程序。然而,我似乎无法弄清楚如何检测何时发生此错误的实际问题是从远程服务器(服务器关闭,网络关闭,超时等)收到响应,而不是由于用户导航。这两种情况似乎都将相同的虚拟空响应状态参数传递给错误处理程序。 (data
为空,status
为0等)。
我认为使用beforeUnload
事件处理程序来检测的导航和假设遇到任何错误后,该事件应该被忽略,但是,是不是在移动Safari浏览器支持这一事件,也许还有其他的浏览器,所以它是一个不可靠的解决方案。
这似乎是一个普遍的问题 - 人们通常如何处理它?
但是,这只会检测到当前页面内的位置的变化,e.q.查询/散列更改将被用于页面内ajax应用程序导航?这似乎是它的目的。我遇到的问题是,当用户导航到一个全新的URL(如非现场链接)时,我的角度应用程序的$ http错误处理程序正在被调用,所以用户在离开页面之前就会出现错误。 FWIW演示程序似乎没有记录这种导航,链接:http://browserstate.github.io/history.js/demo/ – Yetanotherjosh