j查询在函数外部存储值不起作用



我正在构建这个jQuery函数,以便在单击按钮时从后端获取数据。我一直在阅读这个答案 如何从异步调用返回响应?对于类似的问题,并应用了jQuery延迟对象解决方案,如下所示。

var results; 
function ajax() {
    var keyword = prompt("Enter keyword you wish to search for");
    return  $.ajax({
                type: "GET",
                url: "http://localhost:8080/getGeojson"+keyword,
                data: {},
                dataType: 'json',              
                success: function (data) {
                    return(data);
                    console.log(data);
                }
            });
}

$('#keywordSearch').click(function() {
    ajax().done(function(result) {
        results = result;
        console.log("something went right");
    }).fail(function() {
        console.log("something went wrong");
    });
});

但是,此代码仍然不起作用。它获取结果,我在控制台日志中看到它们,但结果仍未存储在全局变量结果中。它仍然未定义。

任何帮助将不胜感激。

谢谢!

在您的函数中,我没有看到您实际分配结果变量。您可能需要将结果 = data; 添加到 ajax 函数中。

function ajax() {
    var keyword = prompt("Enter keyword you wish to search for");
    return  $.ajax({
                type: "GET",
                url: "http://localhost:8080/getGeojson"+keyword,
                data: {},
                dataType: 'json',              
                success: function (data) {
                    results = data;
                    return(data);
                    console.log(data);
                }
            });
}

如果您有任何其他问题,请发表评论。

相关内容

  • 没有找到相关文章

最新更新