jQuery的.将JSON作为结果分配给变量

Ser*_*rov 2 javascript ajax jquery

我使用这个帮助函数来接收我的请求的JSON结果:

function getData(url) {
    $.get(url,
         function(data) {
             response = data;
             return response;
         }, 'application/json');
}
Run Code Online (Sandbox Code Playgroud)

我从我的web应用程序中给它一些字符串作为url的一部分,比如'/ api/getusers',所以它看起来像getData('/api/getusers').现在我需要包含我从url收到的JSON数据的字符串结果分配给我的变量,所以它看起来像这样:var result = getData('/api/getusers').然后我将处理这个JSON数据.问题是返回响应变量.这是未定义的.谢谢!

Val*_*rij 7

试试这个

function getData(url) {
var data;
    $.ajax({
        async: false, //thats the trick
        url: 'http://www.example.com',
        dataType: 'json',
        success: function(response){
           data = response;
        }
    });
    return data;
}


Nic*_*ver 6

这是一个异步操作,这个含义function(data) { ... }运行,当从服务器的响应是可用的,你回来后不久getData().相反,从该功能开始你需要的任何东西,例如:

function getData(url, callback) {
    $.get(url, callback, 'application/json');
}
Run Code Online (Sandbox Code Playgroud)

然后当你调用它时,传入一个函数或引用一个使用响应的函数,如下所示:

getData("myPage.php", function(data) {
  alert("The data returned was: " + data);
});
Run Code Online (Sandbox Code Playgroud)