我正在构建这个jQuery函数,以便在单击按钮时从我的后端获取数据。我一直在阅读这个答案How do I return the response from an asynchronous call?到类似的问题,并应用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");
});
});
但是这段代码仍无效。它得到结果,我在控制台日志中看到它们,但结果仍然没有存储在全局变量结果中。它仍未定义。
任何帮助都将不胜感激。
谢谢!
答案 0 :(得分:0)
在你的功能中,我没有看到你实际分配结果变量。 您可能需要在ajax函数中添加 results = data; 。
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);
}
});
}
如果您有任何其他问题,请发表评论。