当前位置: 首页 > 面试题库 >

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

百里涛
2023-03-14
问题内容

我有以下代码:

 $.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在完全重载时中止请求,或者至少不调用我的成功函数?我无法在成功处理程序中知道为什么数据为空-
是从服务器传来的数据为空还是由于重新加载导致调用中止。


问题答案:

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



 类似资料:
  • 问题内容: HTTP请求的标头中是否有任何内容可以区分给定客户端的AJAX调用和直接浏览器请求?用户代理字符串通常是否相同? 问题答案: 如果您使用Prototype,jQuery,Mootools或YUI,则应该找到一个 X-Requested-With:XMLHttpRequest 标头,它将为您解决问题。应该可以在其他库中插入任何您喜欢的标头。 在最低级别上,给定XMLHttpRequest

  • 问题内容: jQuery可以为失败的AJAX调用提供后备功能吗?这是我的尝试: 不幸的是,即使调用了$ .getJSON()方法的回调函数,在回调函数有机会设置requestOK变量之前,我也会收到消息“请求失败”。我认为这是因为代码并行运行。有没有办法处理这种情况?我考虑过链接或某种方式等待AJAX​​请求,包括其回调函数。但是如何?有谁知道这是怎么做到的吗? 问题答案: 您将需要使用较低级别的

  • 问题内容: 尝试将用户重定向到URL时,它适用于GET请求,但不适用于回发请求。 通过firebug的“网络”窗口,我可以看到回发请求(应引起重定向)完成后浏览器收到的重定向响应。浏览器似乎启动了对重定向URL的GET请求,但实际上并未成功重定向。它保留在同一页面上。 我在JSF服务器端使用。服务器根本没有收到启动的GET请求。但是由浏览器根据服务器的要求启动。我猜问题只是在客户端 谁能解释如何使

  • 问题内容: socket.io中有一种方法可以在断开连接的事件中创建超时,然后检查用户是否已重新连接? 这个想法是仅在超时后未重新连接用户时才发出数据/将用户状态保存在数据库中 编辑 :@Are Wojciechowski回答之后,我已经完成了多个标签页和F5洪水处理程序 https://gist.github.com/foohey/7696811 问题答案: 有一个。所以你可以做 我明白了 因此

  • 我正在使用jQuery的方法向我的Elastic的API发出请求。 在查询中传递参数时,一切都很好: 在正文(json)中传递参数时,问题开始出现: 浏览器(Chrome)不发送请求,而是发送请求。 阅读jQuery的留档我看到: 对于跨域请求,将内容类型设置为Application/x-www-form-urlencoded、multipart/form-data或text/平原以外的任何内容都

  • 在我的php文件中,我有以下内容来创建一个带有FPDF库的PDF: 但是请求是响应这个,而不是打开一个保存对话框来保存我的PDF。 %PDF-1.3 3 0 obj<>endobj 4 0 obj<>stream x 3 R@2π35 W(çR qπw 3 t04多30 pispéz*[(hx·ääää+çó)·(j*dé7 w endstream endobj 1 0 obj /xobject<