Код alert()
запускается до получения ответа от $.ajax
.
Вот почему это undefined
.
var somedata;
$.ajax({
cache: false,
url: verification_url,
success: function(data){
somedata = data;
alert( somedata ); // 2. this will occur after the response is received
}
});
alert(somedata); // 1. this will occur first
Здесь вы можете видеть, что оповещения происходят не по порядку. По умолчанию запрос AJAX не запрещает запуск следующего кода.
Вот и вся цель метода callback . Это метод, который вызывается в соответствующее время, вместо того, чтобы полагаться на синхронное выполнение.