Ajax和jQuery页面重装

问题描述 投票:0回答:2

我在创建函数时遇到问题-在不重新加载的情况下加载页面,我遇到的问题是“我想在链接为404或没有网络连接丢失时显示警报”。我知道此代码jqXHR.status == 0会得到网络连接错误,或为404出现jqXHR.status !== 0,但我不知道我不知道如何用现有代码实现此代码。

请帮助我编写此功能。

$(function(){
    $("a[rel='tab']").click(function(e){
      pageurl = $(this).attr('href');
      $.ajax({url:pageurl+'?rel=tab',success: function(data){
        $('#containt').html(data);
      }});
      if(pageurl!=window.location){
        window.history.pushState({path:pageurl},'',pageurl);  
      }
      return false;  
    });
  });
  $(window).bind('popstate', function() {
    $.ajax({url:location.pathname+'?rel=tab',success: function(data){
      $('#containt').html(data);
    }});
  });
<a rel="tab" href="./404.php">Show me 404 ALert Pls</a>
jquery html ajax load
2个回答
0
投票

为“错误”事件或“ statusCode”添加回调。

$.ajax({
      url:pageurl+'?rel=tab',
      success: function(data){
        $('#containt').html(data);
      },
  statusCode: {
    404: function() {
      alert( "page not found" );
    }
  }

});

docs

错误

Type:Function(jqXHR jqXHR,字符串textStatus,字符串errorThrown)

如果请求失败,将调用的函数。的函数接收三个参数:jqXHR(在jQuery 1.4.x中,XMLHttpRequest)对象,一个描述错误类型的字符串发生,以及一个可选的异常对象(如果发生)。可能第二个参数的值(除null外)为“超时”,“错误”,“中止”和“ parsererror”。 当HTTP错误发生时,errorThrown接收HTTP状态的文本部分,例如“未找到”或“内部服务器错误。”(在HTTP / 2中,它可能为空字符串)从jQuery 1.5开始,错误设置可以接受数组功能。每个函数将依次调用。注意:此处理程序是跨域脚本和跨域JSONP请求未调用。这是一个Ajax事件。

statusCode(默认:{})

Type:PlainObject一个数字HTTP代码和功能的对象,当响应具有相应的代码时调用。如果请求是成功后,状态码功能采用与成功回调;如果导致错误(包括3xx重定向),它们采用与错误回调相同的参数。

(添加的版本:1.5)


0
投票

您可以使用错误功能以这种方式执行此操作

    $.ajax({
        url: pageurl + '?rel=tab',
        error: function (xhr, ajaxOptions, thrownError) {
            alert(xhr.status);
            // here you can use the xhr code to return to main page or whatever
            alert(thrownError);
        },
        success: function (data) {
            $('#containt').html(data);
        }
    });
© www.soinside.com 2019 - 2024. All rights reserved.