var myXML;
$.ajax({
type:'GET',
url:'http://localhost:8080/someCGIhere/',
datatype:'xml',
success: function(xml){
console.log('Success!');
myXML = $(xml).find('SomeThing').text();
//1) Prints out the myXML value
console.log("myXML = " +myXML);
}
});
//2) Prints out undefined
console.log('Result = '+myXML);
为什么响应没有存储在成功范围之外,考虑到它将值赋给一个在范围外声明的变量?
'$ .ajax'生成一个异步请求,所以'// 2'在'// 1'之前执行。您应该能够在控制台中的'Success!'前看到Result = undefined'。 – Hacketo
我确实看到它在控制台中,现在我明白了!在我心中,javascript必须等待调用完成,然后才能在代码中顺序执行,谢谢! @Hacketo –
对不起哈克托,我在回答之前没有看到您的评论 – Ello