【问题标题】:How to show the error on a web page if an AJAX call fails (e.g. Timeout error)如果 AJAX 调用失败(例如超时错误),如何在网页上显示错误
【发布时间】:2011-12-25 07:21:33
【问题描述】:

如果 AJAX 调用无法到达服务器,我必须在请求的页面上显示错误。

我不知道执行此操作的确切 Ajax 代码。

到目前为止我尝试过的代码是:

$.ajax({
       type: 'get',
       url: '/tasks',
       timeout: (5000),
       success: function(){
          alert('success'); 
       },
       error: function(objAJAXRequest, strError){
          abort("Error! Type: " +strError);
       }
});

当我终止服务器时(在页面本身被加载之后!)这个 AJAX 调用应该显示一条错误消息,并且当服务器重新启动时它应该正确响应请求。

【问题讨论】:

  • 你的意思是,你停止服务器,它应该抛出一个错误,然后你再次启动服务器并显示成功消息,而不再次触发调用?我认为这是不可能的。
  • 为了补充Felix所说的,AJAX请求将发送到同一站点上的某个位置,因此如果服务器停止,该网站无论如何都不会可见?如果我误解了你的意思,请纠正我。
  • 可能有触发,我只是想在服务器不可用的情况下向请求的页面发送错误消息
  • 如果原始请求因 Jquery 不提供而失败,您必须编写自己的重试服务器方法。

标签: jquery ajax timeout


【解决方案1】:

只是我的理论猜测,你可以通过 setTimeout 函数来实现

$(document).ready(function() {
  setTimeout( ajaxPoll, 5000);
});

function ajaxPoll(){
  $.ajax({
       type: 'get',
       url: '/tasks',
       success: function(){
          $('alertWindow').hide(); 
       },
       error: function(objAJAXRequest, strError){
          $('alertWindow').show();
       }
  });
}

也意味着你不能使用模态窗口alert,它应该只是DOM元素。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-01
    • 2019-11-01
    • 1970-01-01
    • 2021-11-24
    • 2012-07-11
    相关资源
    最近更新 更多