나는 나의 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 ...}' –