मैं प्रोटोटाइप का उपयोग अपने 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;
}
}
});
}
लेकिन यह भी काम नहीं करता था। मैं उपयोग करने के लिए अन्य विधि के लिए प्रतिक्रिया पाठ कैसे प्राप्त कर सकते हैं?
आपका उत्तर महान, अधिक कार्यात्मक/ओओपी शैली है, और वास्तव में, वास्तव में बहुत अच्छा है। हालांकि, [किसी का] - जवाब बिंदु पर था: असीमित: झूठा अधिक आसान है और प्रश्न लेखक चाहता था आसान है (लेकिन आपका समाधान अधिक एक्स्टेंसिबल और लचीला है)। –
असीमित: झूठी प्रतिक्रिया प्राप्त होने तक ब्राउज़र को रोक देगा। यदि नेटवर्क कनेक्शन धीमा है, तो सर्वर से कनेक्ट करने में कुछ सेकंड लगते हैं, तो पूरा ब्राउज़र कुछ सेकंड के लिए जमा हो सकता है, और उपयोगकर्ता इनपुट का जवाब नहीं देगा। यह अच्छी उपयोगिता नहीं है। यह आसान हो सकता है, लेकिन यह अच्छी तरह से व्यवहार नहीं करता है, और इसलिए ** 'असीमित: झूठी' का उपयोग कभी नहीं किया जाना चाहिए **। – Marius
क्षमा करें, मैंने वास्तव में पहले एसिंक्रोनस का उपयोग नहीं किया था। आप सही हैं, इसलिए यह मूल रूप से 'फ़ंक्शन AJAXLoader() {var fAjaxLoaded = false; $। AJAX (..., सफलता: फ़ंक्शन() {fAjaxLoaded = true;}) जैसा ही है; जबकि (fAjaxLoaded); वापसी ...} ' –