@muhasa

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

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

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

Как сделать?
  • Вопрос задан
  • 160 просмотров
Решения вопроса 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 запросов.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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