[英]JS Ajax function not setting variable value
我有一个简单的ajax函数
function get_country(request_term) {
var country_list = '';
$.ajax({
url : "activity/get_country",
type : "POST",
cache : false,
data : {
request_term : request_term
},
success : function(data) {
if(data != '') {
country_list = $.parseJSON(data);
alert(country_list); ----> Got value here
}
}
});
alert(country_list); ----> Not getting value here
return country_list;
}
问题是,我在成功函数中获取数据,但无法从main函数返回它。
由于AJAX是异步的,你可以不知道什么时候success
,可以完成(或者如果它永远不会完成)。 因此,任何需要ajax调用结果的代码也必须依赖于ajax回调。
jQuery使得绑定其他回调变得非常容易。
return $.ajax({ /* rest of your code */
get_country(request_term).done(function (data) {
//are you sure JSON isn't returned already?
country_list = $.parseJSON(data);
});
您可以通过将async设为false来实现。 但它不是一种推荐的方式。
此代码将返回country_list
function get_country(request_term) {
var country_list = '';
$.ajax({
url : "activity/get_country",
type : "POST",
cache : false,
async : false,
data : {
request_term : request_term
},
success : function(data) {
if(data != '') {
country_list = $.parseJSON(data);
alert(country_list);
}
}
});
alert(country_list);
return country_list;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.