Доброго времени суток! Сегодня рассмотрим с Вами как можно остановить HTTP-запрос в JavaScript . В примере мы будем использовать JavaScript Fetch API .

Как остановить HTTP-запрос, запущенный с помощью Fetch в JavaScript

Доброго времени суток! Сегодня рассмотрим с Вами как можно остановить HTTP-запрос в JavaScript. В примере мы будем использовать JavaScript Fetch API.

Код html-страницы


<!DOCTYPE html>
<html lang="ru">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JavaScript Fetch</title>
</head>
<body>
  <button id="down_button">Загрузить</button>
  <button id="stop_button">Остановить</button>

  <script src = "script.js"></script>
</body>
</html>

Скрипт script.js


document.addEventListener("DOMContentLoaded", function() {

    // создаем объект класса AbortController, который отвечает за остановку запроса
    const controller = new AbortController();

    // получаем свойство signal из объекта контроллера
    const signal = controller.signal;

    // ссылки на кнопки
    const down_button = document.getElementById("down_button");
    const stop_button = document.getElementById("stop_button");

    // при щелчке по кнопке загрузки
    down_button.addEventListener("click", () => {

    // делаем запрос на сервер, в качестве второго аргумента передаем объект со свойством signal
    fetch('https://myrusakov.ru/posts', { signal: signal })
        .then(response => response.json())
        .then(json => alert(json));

    });

    // при щелчке на кнопку остановить - посылаем сообщение о необходимости остановки
    stop_button.addEventListener("click", () => {
        controller.abort();
    });
});

Вот таким образом можно остановить HTTP-запрос, отправленный на сервер, в браузере пользователя.