.ajaxSuccess()

04.03.2023
190
Успешное завершение запроса в jQuery Ajax: обработка ответов, парсинг данных, отображение результатов запроса

В этой статье мы рассмотрим метод .ajaxSuccess() в jQuery, который позволяет нам обрабатывать успешное завершение AJAX-запросов.

Пример 1: Простейший пример использования .ajaxSuccess()

$(document).ajaxSuccess(function(event, xhr, settings) {
  console.log('Ajax request was successful!');
});

В данном примере мы используем метод .ajaxSuccess() для логирования сообщения в консоль при успешном завершении AJAX-запроса.

Пример 2: Использование .ajaxSuccess() с фильтрами

$(document).ajaxSuccess(function(event, xhr, settings) {
  if (settings.url === '/api/data') {
    // Логируем сообщение в консоль, если запрос был выполнен успешно
    console.log('Ajax request to /api/data was successful!');
  }
});

В этом примере мы используем .ajaxSuccess() вместе с фильтрами, чтобы выполнять код только при успешном завершении AJAX-запроса к конкретному URL-адресу.

Пример 3: Использование .ajaxSuccess() с обработкой данных

$(document).ajaxSuccess(function(event, xhr, settings) {
  if (settings.url === '/api/data') {
    var data = JSON.parse(xhr.responseText); // парсим JSON-ответ
    console.log('Received data:', data); // логируем его в консоль
  }
});

В этом примере мы используем .ajaxSuccess() для обработки данных, полученных в результате AJAX-запроса. Мы парсим JSON-ответ и логируем его в консоль.

Пример 4: Использование .ajaxSuccess() для модификации ответа

$(document).ajaxSuccess(function(event, xhr, settings) {
  if (settings.url === '/api/data') {
    var data = JSON.parse(xhr.responseText); // парсим JSON-ответ
    data.push({id: 4, name: 'New item'}); // добавляем новый элемент в массив данных
    xhr.responseText = JSON.stringify(data); // сериализуем его обратно в JSON-формат
  }
});

В этом примере мы используем .ajaxSuccess() для модификации ответа, полученного в результате AJAX-запроса. Мы парсим JSON-ответ, добавляем новый элемент в массив данных и сериализуем его обратно в JSON-формат.

Пример 5: Использование .ajaxSuccess() для перенаправления

$(document).ajaxSuccess(function(event, xhr, settings) {
  // проверяем, что URL запроса соответствует нужному
  if (settings.url === '/api/data') {
    // перенаправляем пользователя на страницу success.html
    window.location.href = '/success.html';
  }
});

В этом примере мы используем .ajaxSuccess() для перенаправления пользователя на другую страницу при успешном завершении AJAX-запроса. Сначала мы проверяем, что URL запроса соответствует нужному, а затем перенаправляем пользователя, изменив свойство window.location.href.

Пример 6: Использование .ajaxSuccess() для анимации

$(document).ajaxSuccess(function(event, xhr, settings) {
  if (settings.url === '/api/data') {
    // скрыть спиннер загрузки после успешного завершения AJAX-запроса
    $('#loading-spinner').fadeOut();
  }
});

В этом примере мы используем .ajaxSuccess() для анимации. Мы скрываем спиннер загрузки после успешного завершения AJAX-запроса.

Пример 7: Использование .ajaxSuccess() для управления состоянием кнопки

$(document).ajaxSuccess(function(event, xhr, settings) {
  if (settings.url === '/api/data') {
    $('#submit-button').removeAttr('disabled'); // Удаляем атрибут disabled после успешного завершения AJAX-запроса.
  }
});

В этом примере мы используем .ajaxSuccess() для управления состоянием кнопки. Мы удаляем атрибут disabled после успешного завершения AJAX-запроса.

Пример 8: Использование .ajaxSuccess() для вывода сообщений об ошибках

$(document).ajaxSuccess(function(event, xhr, settings) {
  // Проверяем URL запроса и статус ответа
  if (settings.url === '/api/data' && xhr.status !== 200) {
    // Выводим сообщение об ошибке при неуспешном завершении AJAX-запроса
    alert('Ajax request failed!');
  }
});

В этом примере мы используем .ajaxSuccess() для вывода сообщения об ошибке при неуспешном завершении AJAX-запроса.

Пример 9: Использование .ajaxSuccess() для выполнения нескольких действий

$(document).ajaxSuccess(function(event, xhr, settings) {
  if (settings.url === '/api/data') {
    var data = JSON.parse(xhr.responseText); // парсим JSON-ответ
    console.log('Received data:', data); // логируем его в консоль
    $('#loading-spinner').fadeOut(); // скрываем спиннер загрузки после успешного завершения AJAX-запроса
  }
});

В этом примере мы используем .ajaxSuccess() для выполнения нескольких действий при успешном завершении AJAX-запроса. Мы парсим JSON-ответ, логируем его в консоль и скрываем спиннер загрузки.

Пример 10: Использование .ajaxSuccess() с различными типами данных

$(document).ajaxSuccess(function(event, xhr, settings) {
  if (settings.url === '/api/data') {
    if (xhr.getResponseHeader('content-type') === 'application/json') {
      var data = JSON.parse(xhr.responseText);
      console.log('Received JSON data:', data);
    } else if (xhr.getResponseHeader('content-type') === 'text/html') {
      var html = xhr.responseText;
      console.log('Received HTML:', html);
    } else {
      console.log('Received unknown data type:', xhr.responseText); // если тип данных неизвестен, выводим сообщение в консоль
    }
  }
});

В этом примере мы используем .ajaxSuccess() с различными типами данных. Мы проверяем тип ответа и обрабатываем его соответствующим образом. Если тип данных неизвестен, выводим сообщение в консоль.

Заключение

.ajaxSuccess() позволяет выполнять различные действия при успешном завершении AJAX-запросов и обрабатывать полученные данные. Надеюсь, эти примеры помогут вам лучше понять, как использовать .ajaxSuccess() в ваших проектах.