Задать вопрос
@muhasa

Как вызывать ajax до тех пор, пока не получим нужный ответ?

В-общем, некий внешний сайт отдаёт по api ответ не всегда корректный. Может 2-3 запроса вернуть пустыми, а потом нормальный ответ выдать.

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

Как сделать?
  • Вопрос задан
  • 180 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    JavaScript
    3 месяца
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик расширенный
    13 месяцев
    Далее
  • Академия Eduson
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
Решения вопроса 1
@glagolew059
frontend developer
Типо такого можно (как и описали выше)
var count = 0;
function send() {
	count++;
	$.ajax({
		url: '...',
		data: data,
		dataType : 'html',
		type: 'POST',
		error: function(){ },
		beforeSend: function(){ },
		complete: function(){ },
		success: function (data, textStatus) {
			if(data == 'good'){
				//получили желаемый	ответ
			}else{
				if(count <= 10)
					send(); //снова отправляем запрос если их меньше 10
				else 
					alert('превышено кол-во запросов!');
			}
		},
	});
}

send();
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@sagechild
программист php
Обернуть ajax запрос в функцию. И вызывать ее. В обработчике ответа, если ответ не успешен снова вызывать. Итак пока не получим успешный ответ или не будет отправлено 10 запросов.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы