我对json支持的链接(url1)进行了这个ajax请求调用:
$.ajax({
type : "GET",
dataType : "json",
url : url1,
success: function (data) {
c1lat1 = [(data[0].boundingbox[0]),(data[0].boundingbox[2])];
alert(c1lat1);
}
});
这完全正常,警报确实提供了我想要的号码。但是,如果我试试这个:
$.ajax({
type : "GET",
dataType : "json",
url : url1,
success: function (data) {
c1lat1 = [(data[0].boundingbox[0]),(data[0].boundingbox[2])];
}
});
alert(c1lat1);
它给了我一个空的警告框,因此看起来它没有将值保存到请求中的变量中。
我如何解决这个问题,因为我需要检索这个值?
谢谢!
答案 0 :(得分:2)
由于ajax默认为 async ,因此您有两个选项 -
在回调中警告变量。在回调中得到结果后必须继续 -
$.ajax({
type : "GET",
dataType : "json",
url : url1,
success: function (data) {
c1lat1 = [(data[0].boundingbox[0]),(data[0].boundingbox[2])];
alert(c1lat1);
}
});
使用async: false
使呼叫同步,这将使您的呼叫同步,控件将在$.ajax()
之后出现;
$.ajax({
type : "GET",
async: false,
dataType : "json",
url : url1,
success: function (data) {
c1lat1 = [(data[0].boundingbox[0]),(data[0].boundingbox[2])];
}
});
alert(c1lat1);
答案 1 :(得分:-2)
1)它的范围问题。 success
内的c1lat1是局部变量。将其定义为全球。
2)success
是异步的,因此您的警报在服务器响应之前发生,因此尚未设置变量。将提醒移至success