我想从我的服务器加载JSON并使用jQuery来使用它。所以,我写了一些源代码。这是我的代码:
var myData;
$.ajax({
url: "https://httpbin.org/get",
success: function (json) {
myData = json;
}
});
console.log(myData);
我认为控制台应该说JSON值。但是当我运行这段代码时,控制台说它的值是undefined
。怎么了?
答案 0 :(得分:0)
ajax调用是异步的,请尝试:
var myData;
$.ajax({
url: "https://httpbin.org/get",
success: function (json) {
myData = json;
console.log(myData);
}
});
编辑:
Javascript是同步的,它是ajax调用谁不是,当你要求Ajax请求时,Javascript启动调用然后继续读取你的代码。服务器响应时会发出Ajax响应。如果您希望代码是同步的,可以写:
var myData;
$.ajax({
url: "https://httpbin.org/get",
success: receivedDatas
});
function receivedDatas(res){
myData = json;
console.log(myData);
}
然后你的JS在做出回应之前什么都不做
重新编辑:
以@fiddler写道:
完成答案请注意,$ .ajax()有一个async参数(默认为true) 可以用来使它同步(参见api.jquery.com/jquery.ajax)