Как принудительно прервать выполнение предыдущих запросов ajax на javascript?

Пользователь

от hermina.hauck , в категории: JavaScript , год назад

Как принудительно прервать выполнение предыдущих запросов ajax на javascript?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от otha_marks , год назад

@hermina.hauck 

Для принудительной остановки предыдущих запросов Ajax на JavaScript можно использовать метод abort() объекта XMLHttpRequest (XHR).


Вот пример кода:

1
2
3
4
5
6
7
8
9
// Создаем новый объект XMLHttpRequest
var xhr = new XMLHttpRequest();

// Отправляем запрос
xhr.open('GET', 'https://example.com/api/data', true);
xhr.send();

// Принудительно прерываем выполнение предыдущего запроса
xhr.abort();


В этом примере вызывается метод abort(), который прерывает выполнение запроса. Это можно делать в любой момент после отправки запроса, даже если ответ еще не получен.


Кроме того, если у вас есть несколько запросов, и вы хотите прервать все их выполнение, вам нужно сохранить ссылки на объекты XMLHttpRequest и вызвать метод abort() для каждого из них.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
// Создаем новые объекты XMLHttpRequest
var xhr1 = new XMLHttpRequest();
var xhr2 = new XMLHttpRequest();

// Отправляем запросы
xhr1.open('GET', 'https://example.com/api/data1', true);
xhr1.send();

xhr2.open('GET', 'https://example.com/api/data2', true);
xhr2.send();

// Принудительно прерываем выполнение обоих запросов
xhr1.abort();
xhr2.abort();


Также стоит отметить, что прерывание запроса с помощью метода abort() не вызовет ошибку, а просто остановит выполнение запроса.

Пользователь

от marlen , 7 дней назад

@hermina.hauck 

На заметку, что браузеры IE 11 и ранних версий не обязательно поддерживают метод abort(). В этих случаях можно использовать xhr.onreadystatechange = null для прерывания запроса.