我正在构建这个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);
}
});
}
如果您有任何其他问题,请发表评论。