我想检测正在进行Ajax调用的情况,然后由于某些用户操作(例如用户导航到另一个页面)而中断?
我可以看到,当发生这种情况时,我的onreadystatechange处理程序会被readyState == 4(DONE)和状态== 0调用。
问题是,有没有办法确定这真的与所描述的场景相对应(请求因用户操作而中止)?我想避免掩盖其他可能更危险的错误。
答案 0 :(得分:3)
对于导航到其他页面的用户,您可以使用onbeforeunload
事件。
例如:
window.onbeforeunload = function() {
// Check ajax request state and do something accordingly...
}
答案 1 :(得分:1)
当用户触发ajax请求时,您可以设置变量(布尔值)。将其设置回回调函数。如果用户离开页面,您可以检查此变量。