JavaScript如何返回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供其他方法使用?

回答:

请记住,在someFunction完成工作后很久才调用onComplete。您需要做的是将回调函数作为参数传递给somefunction。当进程完成工作时(即onComplete),将调用此函数:

somefunction: function(callback){

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;

callback(result);

}

}

});

}

somefunction(function(result){

alert(result);

});

以上是 JavaScript如何返回AJAX响应文本? 的全部内容, 来源链接: utcz.com/qa/407957.html

回到顶部