私はAJAXの開発を行うためにプロトタイプを使用して、私はこのようなコードを使用します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;
}
をそして私は「結果は」空の文字列であることがわかります。だから、私はこの試みた:
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;
}
}
});
}
をしかし、それはまた、うまくいきませんでした。他のメソッドのresponseTextを取得するにはどうすればよいですか?
あなたの答えは素晴らしい、より機能的な/ oopスタイル、そして本当に、本当に素晴らしい。しかし、誰かが答えたのは非同期です:falseはより簡単で、質問作成者が望むものが簡単になります(しかし、あなたのソリューションはより拡張性と柔軟性があります)。 –
asynchronous:falseは、応答が受信されるまでブラウザを停止します。ネットワーク接続が遅いため、サーバーへの接続に数秒かかる場合は、ブラウザ全体が数秒間フリーズすることがあり、ユーザーの入力に応答しません。これは良いユーザビリティではありません。それはより簡単かもしれませんが、うまく動作しないため、**非同期:falseを決して使用しないでください**。 – Marius
申し訳ありませんが、以前は非同期を実際に使用していませんでした。あなたは正しいので、基本的に 'function ajaxLoader(){var fAjaxLoaded = false; $。ajax(...、success:function {){fAjaxLoaded = true;})と同じです。 while(fAjaxLoaded); return ...} ' –