Javascript 从jqueryajax请求返回数据
我试图获取一个函数来执行ajax查询,然后将解释后的JSON作为对象返回。但是,无论出于何种原因,一旦执行了此请求,数据只能从函数内部访问Javascript 从jqueryajax请求返回数据,javascript,javascript-events,jquery,Javascript,Javascript Events,Jquery,我试图获取一个函数来执行ajax查询,然后将解释后的JSON作为对象返回。但是,无论出于何种原因,一旦执行了此请求,数据只能从函数内部访问 function getCacheImage(direction) { jQuery.ajax({ url: json_request_string, success: function(data) {
function getCacheImage(direction) {
jQuery.ajax({
url: json_request_string,
success: function(data) {
return data;
}
});
}
如何使此函数适当地返回“数据”
谢谢。您需要使用同步ajax请求(不典型或不推荐)并将数据捕获到外部作用域中的变量中,或者了解如何在回调函数中操作数据。问题是ajax函数在ajax调用完成之前返回——它是异步的 同步方式:
function getCacheImage(direction) {
var capture;
jQuery.ajax({
url: json_request_string,
aSync: false,
success: function(data) {
capture = data;
}
});
return capture;
}
典型的,使用回调
function getCacheImage(direction,callback) {
jQuery.ajax({
url: json_request_string,
success: function(data) {
callback( data );
}
});
}
getCacheImage('left', function(data) {
...do something with the data...
}
你不能。AJAX首字母缩写的第一个字母代表异步,这意味着AJAX请求被发送,控制权立即返回给调用函数。您需要做的是处理回调函数中的数据。您将数据返回到调用回调函数的代码中。该代码无法及时发送数据,以便从启动请求的函数返回数据
function getCacheImage(direction) {
jQuery.ajax({
url: json_request_string,
success: function(data) {
return data;
}
});
}
无论您想对数据做什么,都可以在回调函数中执行
function getCacheImage(direction) {
jQuery.ajax({
url: json_request_string,
success: function(data) {
return data;
}
});
}