tôi sử dụng nguyên mẫu để làm phát triển AJAX của tôi, và tôi sử dụng mã như thế này:Làm thế nào để trả về văn bản phản hồi 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;
}
Và tôi thấy rằng "kết quả" là một chuỗi rỗng. Vì vậy, tôi đã thử điều này:
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;
}
}
});
}
Nhưng nó cũng không hoạt động. Làm thế nào tôi có thể nhận được responseText cho phương pháp khác để sử dụng?
Câu trả lời của bạn rất tuyệt vời, phong cách/chức năng hơn và thực sự tuyệt vời. Tuy nhiên, [ai đó] -s trả lời là điểm: không đồng bộ: sai là dễ dàng hơn và dễ dàng hơn những gì tác giả câu hỏi muốn (nhưng giải pháp của bạn là mở rộng hơn và linh hoạt). –
không đồng bộ: false sẽ tạm dừng trình duyệt cho đến khi nhận được phản hồi. Nếu kết nối mạng chậm, vì vậy phải mất một vài giây để kết nối với máy chủ, sau đó toàn bộ trình duyệt có thể bị đóng băng trong vài giây và sẽ không phản hồi lại đầu vào của người dùng. Đây không phải là khả năng sử dụng tốt. Nó có thể dễ dàng hơn, nhưng nó không hoạt động tốt, và do đó ** 'không đồng bộ: false' sẽ không bao giờ được sử dụng **. – Marius
xin lỗi, tôi đã không thực sự sử dụng không đồng bộ trước đây. Bạn nói đúng, do đó, về cơ bản giống như 'function ajaxLoader() {var fAjaxLoaded = false; $. Ajax (..., success: function() {fAjaxLoaded = true;}); while (fAjaxLoaded); return ...} ' –