używam prototyp zrobić mój rozwój AJAX i użyć kodu takiego:Jak zwrócić tekst odpowiedzi 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;
}
I uważam, że „wynik” jest pustym ciągiem. Tak więc próbowałem:
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;
}
}
});
}
Ale to też nie działa. Jak mogę uzyskać responseText dla innej metody do użycia?
Twoja odpowiedź jest wspaniała, bardziej funkcjonalna/oopowa i naprawdę, naprawdę świetna. Jednak odpowiedź [ktoś] -s była do rzeczy: asynchroniczna: fałsz jest łatwiejszy i ułatwia pytanie autora (ale twoje rozwiązanie jest bardziej rozszerzalne i elastyczne). –
asynchroniczne: false spowoduje zatrzymanie przeglądarki, dopóki odpowiedź nie zostanie odebrana. Jeśli połączenie sieciowe jest wolne, więc połączenie się z serwerem trwa kilka sekund, cała przeglądarka może zatrzymać się na kilka sekund i nie odpowie na dane wprowadzone przez użytkownika. To nie jest dobra użyteczność. To może być łatwiejsze, ale nie zachowuje się dobrze, dlatego ** nigdy nie powinno być używane ** asynchroniczne: fałsz **. – Marius
Przepraszam, wcześniej nie używałem asynchronicznego. Masz rację, więc to w zasadzie to samo, co 'function ajaxLoader() {var fAjaxLoaded = false; $. Ajax (..., success: function() {fAjaxLoaded = true;}); while (fAjaxLoaded); return ...} ' –