【发布时间】:2010-11-08 20:17:39
【问题描述】:
我在将数据返回到我想要返回的函数时遇到问题。代码如下:
function ioServer(request_data, callback)
{
$.ajax({
cache: false,
data: "request=" + request_data,
dataType: "json",
error: function(XMLHttpRequest, textStatus, errorThrown){},
success: function(response_data, textStatus){
callback(response_data);
},
timeout: 5000,
type: "POST",
url: "/portal/index.php/async"
});
}
function processRequest(command, item, properties)
{
var request = {};
request.command = command;
request.item = item;
request.properties = properties;
var toServer = JSON.stringify(request);
var id = ioServer(toServer, processResponse);
return id;
}
function processResponse(fromServer)
{
if (fromServer.response == 1)
{
return fromServer.id;
}
}
我通过在另一个函数中调用 processRequest 函数来调用这段代码。发送请求和检索响应工作得很好。但是,我需要将响应中的值“id”返回给 processRequest 函数,这样它又可以将该值返回给它的调用者。据我所知,processResponse 中的返回返回到 $.ajax,但我需要它进一步返回到 processRequest。
顺便说一句,processResponse 中的 if 语句引用了服务器端 PHP 脚本设置的值,用于判断请求是否被允许(例如,如果用户未登录,fromServer.response 将为 0)。它与 $.ajax 对象的成功/错误例程没有任何关系。
非常感谢您的帮助。
@Jani:感谢您的回复,但您能再澄清一下吗?需要'id'的函数代码如下:
$(#tabs).tabs('add', '#tab-' + id, 'New tab');
你是说我应该尝试在 processResponse 函数中执行这段代码吗?因为那不是我打算做的;这些功能旨在成为维护状态服务器端的通用解决方案。这就是我避免将这段代码放在那里的原因。
【问题讨论】:
标签: javascript jquery ajax callback return