我得到以下代码:
功能server_request(module,section,action,data){
数据['模块'] =模块;
data ['section'] =区段;
data ['action'] =动作;
var responsetxt = null;
$ .post('../ application / server.php',data,function(data){
responsetxt =数据;
});
返回responsetxt;
}
然后返回null
?
我想要的是让server_request
函数返回responseText吗?
但是以某种方式它不起作用,为什么呢?以及如何使其工作?
最佳答案
您正在为$ .post提供一个回调函数,该函数将在返回请求时运行。 server_request函数立即返回(即在响应可用之前),因此responsetxt仍为null。
为了解决这个问题,您可以在server_request中添加一个回调参数,然后在提供给$ .post调用的匿名函数中执行该参数:
function server_request(module,section,action,data,callback) {
data['module'] = module;
data['section'] = section;
data['action'] = action;
$.post('../application/server.php', data, function(data) {
callback(data);
});
}
然后,您可以像这样使用:
$(function() {
var module = x, section = y, data = z;
server_request(module, section, data, function(response) {
$('#result').html(response); // do stuff with your response
});
});
查看继续传递样式以获取更多信息(http://en.wikipedia.org/wiki/Continuation-passing_style和http://matt.might.net/articles/by-example-continuation-passing-style/)。
关于javascript - 让$ .post函数返回父函数中的响应,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4147485/