【发布时间】:2010-11-02 17:47:23
【问题描述】:
jquery ajax 成功回调返回到哪里?
我编写了一个请求方法,它可以进行 ajax 调用,检测我是否提供了回调或返回响应 XML 的数据节点。
请求方法:
function request(request, dontRefresh)
{
var requestXML = composeRequestXML(request);
$.ajax({
url: 'someProcessor.php',
type: 'POST',
cache: false,
async: dontRefresh,
timeout: 5000,
data: "query="+requestXML,
success: function(response)
{
//parses xml into a js object
var responseObj = parseResponseXML(response);
if(request.callback){
request.callback(responseObj);
} else {
// responseObj.response[0].data[0] is the data
// node of the response Obj.
// this is what i see being the problem -
// I DON'T KNOW WHERE THIS IS RETURNED TO!!
return responseObj.response[0].data[0];
}
}
});
}
此请求将使用回调
var requestObj = new Object();
requestObj.callback = function(responseObj){someCallbackFunction(responseObj);};
requestObj[0] = new Object();
requestObj[0].module = "someModule";
requestObj[0].action = "someModuleMethod";
request(requestObj);
//results are returned to the function someCallbackFunction()
这是我想要完成的一个例子
var requestObj = new Object();
requestObj[0] = new Object();
requestObj[0].module = "userManager";
requestObj[0].action = "GET_USERID";
var userId = request(requestObj, false); //make the request asynchronous
我已经尝试返回 $.ajax() 函数本身......就像这样:
function request(request, dontRefresh){
return $.ajax({/*...options...*/);
}
但这绕过了我开发的 xml 解析器并返回 XHR 对象。我想使用这种技术来注册变量。所以本质上...
我将在回调中使用此方法或使用它设置变量。
【问题讨论】:
标签: javascript jquery ajax callback