我有一个ajax函数调用,它有一个值为5的变量sum。但是,当我尝试在ajax函数调用之外访问这个变量时,得到的值为null。有什么方法可以访问ajax函数之外的值吗?
$.ajax({
type: "POST",
url: "Service.asmx/chart",
data: appid,
success: function(data) {
var mydata = 5;
}
});
alert(mydata);
试试这个:
$.ajax({
type: "POST",
url: "Service.asmx/chart",
data: appid,
success: function(data) {
doGetMyData(data);
}
});
function doGetMyData(data){
alert(data);
}
AJAX中的第一个"A"表示异步,因此您的代码在请求完成之前运行警报。为了实现您想要的目标,您可以尝试使您的请求同步,并在查询中添加async:false选项
$.ajax({
type: "POST",
url: "Service.asmx/chart",
data: appid,
async:false,
success: function(data) {
doGetMyData(data);
}
});
function doGetMyData(data){
alert(data);
}
坏消息是同步请求会锁定你的浏览器,直到它完成,这是一个很好的做法来避免这种情况。