当请求由于浏览器重新加载而失败时,jQuery $ .ajax调用成功处理程序

发布于 2021-01-31 17:34:27

我有以下代码:

 $.ajax({
          type: "POST",
          url: url,
          data: sendable,
          dataType: "json",
          success: function(data) {

               if(customprocessfunc)
                   customprocessfunc(data);
         },

          error: function(XMLHttpRequest, textStatus, errorThrown){
                    // error handler here
                }
        });

我有一个计时器,它经常发出AJAX请求。如果我在“数据”中未收到任何内容,则会向用户显示错误消息-这意味着服务器上出现了问题。

问题是当用户在进行AJAX调用时重新加载页面时。我在Firebug中看到AJAX调用失败(URL变成红色,并且没有显示HTTP状态),因此我希望jQuery将停止请求或至少转到错误处理程序。但它会转到成功处理程序,并在’data’变量中传递null。

结果,当用户重新加载页面时,有时他可以看到我关于未知错误的红色大消息(因为数据为空)。

有什么方法可以使jQuery在完全重载时中止请求,或者至少不调用我的成功函数?我无法在成功处理程序中知道为什么数据为空-
是从服务器传来的数据为空还是由于重新加载导致调用中止。

关注者
1
被浏览
106
1 个回答
  • 面试哥
    面试哥 2021-01-31
    为面试而生,有面试问题,就找面试哥。

    您可以onbeforeunload在页面上使用该事件:将其链接到清除您所有AJAX请求的函数。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看