我有以下脚本:
var myData;
$.ajax({
url: "/foo.php",
dataType : 'json',
type: "POST",
async: false
})
.done(function( data ) {
myData = data;
});
我想要做的就是将ajax响应中的数据分配给myData
,并在我的脚本中进一步引用此变量。上面的代码似乎有效,但依赖async: false
,我读过的并不是一件好事。如果我对此进行评论(因此它使用默认的async: true
),则不会为myData
分配任何内容。
我已阅读以下帖子jQuery ajax success callback function definition,但无法对其进行调整,因此我可以访问myData
中的数据。我还注意到这个问题是在2013年被问到的,所以不确定它是否仍然准确或正确的方式来解决这个问题?
这应该如何完成?我使用的是jquery v1.11.1
答案 0 :(得分:1)
好的,以下似乎有效。我已删除了async: false
并添加了一个功能,我将引用ajax调用中的数据。
$.ajax({
url: "/foo.php",
dataType : 'json',
type: "POST"
})
.done(function( data ) {
buildTree(data);
});
function buildTree(data) {
console.log(data);
// other code that needs 'data'
}
我认为根据@pwolaq的建议,这是正确的。