[英]Failed to change a global variable in JQuery ajax function
$( document ).ready(function() {
function doAjax( time_from, time_to ){
var dataRsp;
$.ajax({
url: "/query/"+time_from+"/"+time_to,
type: "GET",
dataType: "json",
success: function(data){ dataRsp = data; },
});
alert(JSON.stringify(dataRsp));
};
doAjax(0,0);
}
上面是我的代码片段,我需要将ajax响应数据存储在全局变量dataRsp中,但是我做不到这一点,我对JS和jquery中的变量作用域感到非常困惑,非常感谢。
将警报放入成功回调中
$( document ).ready(function() {
function doAjax( time_from, time_to ){
var dataRsp;
$.ajax({
async: false,
url: "/query/"+time_from+"/"+time_to,
type: "GET",
dataType: "json",
success: function(data){
dataRsp = data;
return(JSON.stringify(dataRsp));
}
});
};
var x =doAjax(0,0);
alert(x);
}
或者另一个选择是添加async: false
参数。 并且还,
后success
不是必需的。
// GLOBAL
var dataRsp;
$( document ).ready(function() {
function doAjax( time_from, time_to ){
// var dataRsp;
$.ajax({
url: "/query/"+time_from+"/"+time_to,
type: "GET",
dataType: "json",
success: function(data){
dataRsp = data;
// YOU GET IT HERE
alert(JSON.stringify(dataRsp));
},
// Add this if you want to get it just after the "ajax" but not in the callback of "success"
async: false
});
// ALWAYS NULL if async==true as it's not returned yet.
// alert(JSON.stringify(dataRsp));
};
doAjax(0,0);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.