如何从ajax.done()获取数据?

wed*_*rer 5 html javascript php ajax jquery

我有以下功能:

$.ajax({
    url: "../../getposts.php"
}).done(function(posts) { 
    var postsjson = $.parseJSON(posts);
});
Run Code Online (Sandbox Code Playgroud)

如何postsjson.done()函数外部使用变量,或者如何将其声明为全局变量?

我无法将它传递给另一个函数,因为我想稍后使用该数组,而不是在ajax完成时.

Xym*_*ech 5

如果你只是在ajax调用之外定义变量:

var postsjson;

$.ajax({
    url: "../../getposts.php"
}).done(function(posts) { 
    postsjson = $.parseJSON(posts);
});
Run Code Online (Sandbox Code Playgroud)

然后你可以在外面使用它.同样,如果您刚刚离开,var它将全局声明它,但不建议这样做.

正如SLaks所指出的,你将无法立即使用从AJAX调用中获得的数据,你需要等待done函数运行才能将其初始化为有用的东西.

  • 问题不是询问他们什么时候可以访问数据,或者它将持有什么,而是询问他们如何访问匿名函数之外的数据. (2认同)