获取jquery ajax调用的响应作为另一个函数的输入参数:

时间:2011-02-03 23:15:33

标签: javascript ajax jquery

是否可以进行jQuery ajax调用,并将响应作为另一个函数的输入参数?

这是一个例子,我在一个位置调用了以下函数:

updateTips(validationTextObject,objUsers.fetchAvailable());

objUsers.fetchAvailable()函数对服务器进行ajax调用。 成功调用的回调函数就是这样的。它用于处理结果

BHUsers.prototype.recvAvailable= function(response){
    // some kind of processing over here
    return (response["status"] == "OK")? "Available" : "Not Available";
}

我希望该函数返回处理结果,该结果可用作函数updateTips

的参数

这样做的主要目标是能够针对多个场景执行所有这些操作,而不是为同一个调用编写多个函数。此外,我希望调用和响应处理功能只是做他们正在做的事情。我不想在其中添加html对象。

任何线索?

1 个答案:

答案 0 :(得分:1)

假设objUsers.fetchAvailable的原型使用jquery发送ajax请求。

您可以像这样设置成功函数:

BHUsers.prototype.fetchAvailable = function(){
    $.ajax({
        url:'', 
        success: this.recvAvailable // bind success to `recvAvailable`
    })
}

但是由于ajax成功回调有data, textStatus, XHR个参数,你可以用匿名函数包装它。

BHUsers.prototype.fetchAvailable = function(){
    var self = this;
    $.ajax({
        url:'', 
        success: function(data, textStatus, XHR){
            self.recvAvailable(XHR); // bind success to `recvAvailable`
        }
    })
}