首页 > 解决方案 > jQuery获取请求返回未定义的值

问题描述

我正在尝试编写一个函数,该函数将从本地托管的 api 返回数据,以便我可以在使用 var baseUrl = ' http://localhost:3000 '; 时调用该函数来获取更新的数据;

这是我的获取请求:

var baseUrl = 'http://localhost:3000';
function getData(){
    $.ajax({
        type: "GET",
        url: baseUrl + "/jobs", 
        data: "{}",
        success: function(data){
            console.log(data);   
            return data;
        },
        dataType: 'json'
    });

}

以下是将请求的响应设置为不同文件中的变量的示例:

var myVariable = getData();

当我尝试打印 myVariable 时,它​​返回为未定义。有没有办法可以获取返回的 json 对象,以便在我的程序中使用它?

标签: javascriptjqueryajaxgetrequest

解决方案


$.ajax 是异步的。这意味着,当请求等待响应时,其他 JavaScript 代码会运行,因此用户不必等待。(如果代码等待响应,我们称它为阻塞线程。否则为非阻塞)。作为解决方案,您将不得不编写一些异步代码和回调函数

var baseUrl = 'http://localhost:3000';
function getData(){
$.ajax({
    type: "GET",
    url: baseUrl + "/jobs", 
    data: "{}",
    success: function(data){
        // call the 'callback function'
        myCode(data);
        // the return statement would only return this functions, not the $.ajax method
    },
    dataType: 'json'
});

}

function myCode(data) {
    // use data
}

推荐阅读