微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

检测到jQuery.ajax调用失败,因为该页面正在重新加载?

我做了很多$.ajax调用,我以一种抛出一个消息的方式处理错误.我发现如果在重新加载页面正在进行ajax调用,例如单击刷新,或导航到另一个URL,然后我的进行中的ajax调用触发他们的错误回调.

我如何知道真正的错误和由于页面被重新加载而中断的一个调用间的区别?

$.ajax(...)
.success(...)
.error(function(jqXHR) {
  // jqXHR.status == 0 means either Failed to contact server,// or aborted due to page reload -- how can I tell the difference?
});

解决方法

添加一个 unload处理程序,它将一个标志设置为true.然后,在错误处理程序中,您可以检查此标志,并做适当的操作.

例:

var unloading = false;
$.ajax(...) ...
 .error(function(jqXHR) {
    if (unloading) return; // Ignore errors caused by navigating away
    // Now,check for real errors ..
});
$(window).unload(function() {unloading = true;});

原文地址:https://www.jb51.cc/jquery/176333.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐