Этот вопрос закрыт для ответов, так как повторяет вопрос Почему глобальная переменная не изменяется внутри $.ajax: success?
@Mishcake

Как записать в глобальную переменную значение из Ajax?

Всем привет!

2 часа бьюсь с задачей и не могу нагуглить решение, прошу вашей помощи.

Этот код проверяет на сервере введенный имейл и возвращает массив с данными. Мне нужно, чтобы вернувшиеся элементы массива записались как значения глобальноых переменных:
var inBase;
  var hasSession;
  var workedWith;
  var hasDiagnostic;

  $('input[name="email"]').change(function() {
    var userEmail = $('input[name="email').val();

    $.ajax({
      url: "https://site.ru/send.php", // кросс-доменный запрос
      type: "POST",
      dataType: "json",
      async: false,
      data: { email: `${userEmail}` },
      success: function(response) {
        inBase = response.inBase;
        hasSession = response.hasSessionInLast90days;
        workedWith = response.workedWith;
        hasDiagnostic = response.hasDiagnostic;
        return response;
      }
    });
  });


Но при попытке обратиться к переменным всегда выводит underfined. Понимаю, что где-то косячу и некорректно присваиваю значения переменным (или криво возвращаю ответ).

Помогите, пожалуйста.
  • Вопрос задан
  • 119 просмотров
Пригласить эксперта
Ответы на вопрос 1
delphinpro
@delphinpro
frontend developer
Для начала понять, что запросы выполняются асинхронно
Потом можно посмотреть этот ответ Почему глобальная переменная не изменяется внутри $.ajax: success?
Ответ написан
Ваш ответ на вопрос

Вопрос закрыт для ответов и комментариев

Потому что уже есть похожий вопрос.
Похожие вопросы