Ajax и jQuery перезагрузка страницы - PullRequest
0 голосов
/ 13 февраля 2020

У меня проблема с созданием функции - загрузка страницы без перезагрузки. У меня проблема: «Я хочу показать предупреждение, когда ссылка 404 или нет net соединение потеряно». Я знаю этот код jqXHR.status == 0, чтобы получить net ошибку соединения или jqXHR.status !== 0 для 404, но я не знаю, не знаю, как реализовать этот код с моим существующим кодом.

Пожалуйста, помогите мне написать эту функцию.

$(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>

Ответы [ 2 ]

1 голос
/ 13 февраля 2020

Вы можете сделать это, используя функцию ошибки

    $.ajax({
        url: pageurl + '?rel=tab',
        error: function (xhr, ajaxOptions, thrownError) {
            if(xhr.status == 0){
              alert('connect to internet');
              return false; }

            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);
        }
    });
1 голос
/ 13 февраля 2020

Добавление обратного вызова для события «error» или «statusCode».

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

});

Из документов :

error

Тип: Функция (jqXHR jqXHR, String textStatus, String errorThrown)

Функция, вызываемая в случае сбоя запроса. Функция получает три аргумента: объект jqXHR (в jQuery 1.4.x, XMLHttpRequest), строка, описывающая тип возникшей ошибки и необязательный объект исключения, если таковой произошел. Возможные значения для второго аргумента (кроме нуля): «timeout», «error», «abort» и «parsererror». При возникновении ошибки HTTP errorThrown получает текстовую часть статуса HTTP, например «Не найдено» или «Внутренняя ошибка сервера». (в HTTP / 2 это может быть пустая строка) jQuery 1.5, установка ошибки может принимать массив функций. Каждая функция будет вызываться по очереди. Примечание. Этот обработчик не вызывается для междоменных сценариев и междоменных запросов JSONP. Это событие Ajax.

statusCode (по умолчанию: {})

Тип: PlainObject Объект из чисел c HTTP коды и функции, вызываемые, когда ответ имеет соответствующий код. Если запрос успешен, функции кода состояния принимают те же параметры, что и обратный вызов успеха; если это приводит к ошибке (включая перенаправление 3xx), они принимают те же параметры, что и обратный вызов ошибки.

(версия добавлена: 1.5)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...