Io uso prototipo di fare il mio sviluppo AJAX, e io uso il codice come questo:Come restituire il testo di risposta 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;
}
e trovo che il "risultato" è una stringa vuota. Quindi, ho provato questo:
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;
}
}
});
}
Ma non ha funzionato anche. Come posso ottenere il responseText per altri metodi da usare?
La tua risposta è fantastica, più funzionale/oop style, e davvero, davvero eccezionale. Tuttavia, la risposta di [qualcuno] era al punto: asincrono: il falso è più facile e più facile ciò che l'autore della domanda desiderava (ma la soluzione è più estensibile e flessibile). –
asincrono: false interromperà il browser fino a quando la risposta non sarà stata ricevuta. Se la connessione di rete è lenta, ci vogliono alcuni secondi per connettersi al server, quindi l'intero browser potrebbe bloccarsi per alcuni secondi e non risponderà all'input dell'utente. Questa non è una buona usabilità. Potrebbe essere più semplice, ma non si comporta bene, e quindi ** 'asincrono: falso' non dovrebbe mai essere usato **. – Marius
scusate, non avevo effettivamente usato in precedenza asincrono. Hai ragione, quindi è praticamente la stessa di 'function ajaxLoader() {var fAjaxLoaded = false; $. Ajax (..., success: function() {fAjaxLoaded = true;}); while (fAjaxLoaded); return ...} ' –