Здравствуйте, я тут аякс начал осваивать, есть функция типа PHP: function getStreetBox(selid,value) { var link="/json_getinfo.php?callback=?&mode=getstreetslike"; $.getJSON(link, function(data) { alert(data); } ); } возможно ли сделать так чтобы при вызове функции getStreetBox именно _она_ отдавала значение data и то только когда его получит? Пробовал в function(data) писать "return data" и в главной функции после нее писать "return data" но получалась какая-то херня. Подскажите плз, очень надо... или подскажите способ как сделать функцию которая аяксом будет дергать что нужно и ВОЗВРАЩАТЬ это значение (которое дернула) ? Т.е. чтобы можно было аяксом дернуть скрипт some.php и сделать вот так alert(getSomeInfo('some.php?id=666'));
Очень топорный вариант Code: function get(uri, result) { $.ajax({ url: uri, dataType: 'json', async: false, data: '', success: function(data) { result.data = data; }, error: function (msg) { console.log("Ошибка: " + msg.status + ": " + msg.statusText); } }); } function getSomeInfo(uri) { var r = new Object(); get(uri, r); while(r.data.len == 0); console.log("Принятые данные: " + r.data); return r.data; } alert(getSomeInfo('/path/to/api')); А вообще лучше использовать колбэки. Не зря же их придумали. После получения ответа сервера стартуется код, который этот ответ обрабатывает, после чего передает управление дальше. Не нужно пытаться впихнуть всю логику в один поток.
1 вариант. Code: var response = ''; $.ajax({ type: "GET", url: "http://example.org/", async: false, success : function(text) { response = text; } }); alert(response); 2 вариант. Code: var response = $.ajax({ type: "GET", url: "http://example.org/", async: false }).responseText; alert(response); 2 вариант более правильный.