utilizo prototipo de hacer mi desarrollo AJAX, y utilizo el código de la siguiente manera:Cómo devolver el texto de respuesta AJAX?
somefunction: function(){
var result = "";
myAjax = new Ajax.Request(postUrl, {
method: 'post',
postBody: postData,
contentType: 'application/x-www-form-urlencoded',
onComplete: function(transport){
if (200 == transport.status) {
result = transport.responseText;
}
}
});
return result;
}
y me parece que el "resultado" es una cadena vacía. Entonces, probé esto:
somefunction: function(){
var result = "";
myAjax = new Ajax.Request(postUrl, {
method: 'post',
postBody: postData,
contentType: 'application/x-www-form-urlencoded',
onComplete: function(transport){
if (200 == transport.status) {
result = transport.responseText;
return result;
}
}
});
}
Pero no funcionó también. ¿Cómo puedo obtener el texto de respuesta para otro método?
Su respuesta es genial, más funcional/estilo oop, y realmente, realmente genial. Sin embargo, la respuesta de [alguien] fue al punto: asincrónico: falso es más fácil y hace más fácil lo que el autor de la pregunta quería (pero su solución es más extensible y flexible). –
asincrónico: falso detendrá el navegador hasta que se reciba la respuesta. Si la conexión a la red es lenta, tarda unos segundos en conectarse al servidor, luego todo el navegador puede congelarse durante unos segundos y no responderá a la entrada del usuario. Esto no es una buena usabilidad. Puede ser más fácil, pero no se comporta bien, y por lo tanto ** 'asynchronous: false' nunca debe usarse **. – Marius
lo siento, no había usado asincrónicamente antes. Tienes razón, así que eso es básicamente lo mismo que 'function ajaxLoader() {var fAjaxLoaded = false; $. Ajax (..., success: function() {fAjaxLoaded = true;}); while (fAjaxLoaded); return ...} ' –