Извинения - я перекладываю ответ на вопрос, только видел другой вопрос, который этот парень отправил первоначально.
Ajax-функции Jquery являются асинхронными - поэтому функция успеха будет вызываться после , когда будет запущено второе предупреждение. Затем он вернется из функции до завершения метода ajax.
Если вы действительно хотите создать приложение таким образом, вы можете добавить к вызову опцию async , установив для нее значение false. (http://docs.jquery.com/Ajax/jQuery.ajax#options, см. Первую запись.) Это приведет к тому, что функция успеха будет вызвана до того, как метод $ .ajax вернется.
Однако блокировать вызовы ajax не рекомендуется, так как это приведет к зависанию скрипта и браузера.
Поэтому я советую вам реструктурировать приложение следующим образом:
function MakeCall(url, callback) {
$.ajax({
url: url,
dataType: "text",
success: callback
});
}
MakeCall('http://theurl.com', function(txt) {
result = txt;
alert(result);
return;
});