Вернуть данные из ajax функции
Здравствуйте!
Прошу помощи в следующем вопросе. Есть код: function ajax_build(id, callback) { var http = createObject(); http.onreadystatechange = function() { if(http.readyState == 4 && http.status == 200) { var response = http.responseText; if(response != '') { callback(response); } } } http.open('GET', '/scripts/ajax_build.php?id='+id+'&nocache='+nocache); http.send(null); } var result=ajax_build(1, function(data){ return data; }); document.getElementById('div').innerHTML = result; В результате выдается: "undefined". Прошу помощи в решении данной проблемы. |
var ajax_text;
function ajax_build(id, callback) {
var http = createObject();
http.open('GET', '/scripts/ajax_build.php?id='+id+'&nocache='+nocache);
http.onreadystatechange = function() {
if(http.readyState == 4 && http.status == 200) {
var response = http.responseText;
if(response != '') {text=response;}
}
}
http.send('');
}
document.getElementById('div').innerHTML = text;
|
laandrew,
Все действия необходимо выполнять в callback (т.к. операция асинхронная, то данные с сервера будут доступны только в этот момент)
var result=ajax_build(1, function(data){
document.getElementById('div').innerHTML = data;
return data;
});
И кроме того, функция ajax_build у вас ничего не возвращает, поэтому result всегда будет undefined. |
Подскажите, как мне сделать, чтобы функция ajax_build возвращала значение.
Ели допустим я захочу вместо document.getElementById('div').innerHTML присвоить какой-либо переменной значение функции ajax_build и использовать в дальнейшем это значение в различных целях. |
Цитата:
|
Цитата:
теперь синхронная. |
| Часовой пояс GMT +3, время: 20:54. |