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

Почему глобальная переменная не изменяется внутри $.ajax: success?

Здравствуйте.

Есть код:
let data

$.ajax({
    type: "POST", 
    url: "getdata.php", 
    success: function (msg) { 
         data = 'информация'
    },
    error: function (response) { // Данные не отправлены
        alert('Ошибка. Данные не отправлены.')
    }
})

alert(data)


Возвращает undefined.
В чем ошибка?
  • Вопрос задан
  • 1164 просмотра
Подписаться 2 Простой Комментировать
Решение пользователя Andrew К ответам на вопрос (2)
KickeRocK
@KickeRocK
FrontFinish
Потому что аякс функция асинхронна и присвоение происходит только в success - коллбэке.
Поэтому там undefined, выведите значение переменной внутри success и увидите.
Т.е Она изменяется, но позже её вывода(алерта).
Ответ написан