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

Как в $.ajax на jquery сделать return?

Добрый день,

Такая проблема,

Не срабатывает return из блока success в $.ajax

$('.link').click(function(e)
{
   e.preventDefault;
   var bool;
$.ajax({
     ...
    success : function(data)
   {
         if(data == 'true') 
            bool = true;
         else
         {
             bool = false;
             return false;
         }
   }
     ...
})
alert(bool);
})


К сожалению не отрабатывается ни return, ни присвоение переменной из области ajax

Помогите советом!
  • Вопрос задан
  • 5577 просмотров
Подписаться 1 Оценить 2 комментария
Решения вопроса 5
Sanasol
@Sanasol Куратор тега JavaScript
нельзя просто так взять и загуглить ошибку
async
Ответ написан
Комментировать
@dmitryKovalskiy
программист средней руки
Потому что запрос делается асинхронно и когда приходит ответ на запрос - сама функция уже закончила свое выполнение. Корректируйте алгоритм и архитектуру.
Ответ написан
Комментировать
dedalik
@dedalik
Веб разработчик
С версии jQuery 1.8 async: false id Deprecated, поэтому не стоит использовать это свойство. Сделайте $.when

$('.link').click(function(e) {
   e.preventDefault;
   var bool,
   call;

  call = $.ajax({
    success : function(data) {
      if(data == 'true') {
        bool = true;
      } else {
         bool = false;
         return false;
      }
    }
  })
  $.when( call ).then(function( data, textStatus, jqXHR ) {
    alert(bool);
  });
});


или через .done

$('.link').click(function(e) {
   e.preventDefault;
   var bool;

  $.ajax({
    .done(function(data) {
      if(data == 'true') {
        bool = true;
      } else {
         bool = false;
         return false;
      }
      alert(bool);
    })
  })
});
Ответ написан
Комментировать
zualex
@zualex
Senior Software Engineer
function getAjaxValue(){
    var res='';
    $.ajax({
	    async: false,
	    ...
	    success: function(data){
		    res = data;
	    }
    });
    return res;
}
Ответ написан
Комментировать
Dreamka
@Dreamka
Web-разработчик.
Пригласить эксперта
Ваш ответ на вопрос

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

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