如何返回Ajax响应文本?

如何返回Ajax响应文本?

我使用Prototype进行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?



繁花不似锦
浏览 765回答 2
2回答

慕娘9325324

记住,onComplete是在功能完成后很久才被调用的。您需要做的是将回调函数作为参数传递给某个函数。此函数将在流程完成时调用(即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);});
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript