我想知道这些是不是以传统 var 集的形式访问 jquery ajax 调用结果的任何方法,以实现函数时尚。例如考虑:
function getPoints(){
//An array of JSON objects
var Points;
$.ajax({
url: "js/retrievePointsDataJson.php",
dataType:'json',
type: 'POST',
}).done(function(data){
//console.log(data);
Points.append(data);
});
console.log(Points);
return Points;
}
注释掉的 console.log 显示了 json 对象的数组,而外部的则没有。现在,我尝试了这个:
var Points = $.ajax({ ...});
我在一个更大的对象中看到了响应文本,但我不确定如何访问响应文本。 console.log(Points.responseText) 产生一个 undefined variable 。 这种方法可能吗? Here是另一个带有类似问题的复选标记的问题。
我有另一个解决方案,将我的代码封装在 done() 函数中,这样我就可以访问我的所有数据。我只是好奇我正在尝试做的事情是否可行。
谢谢。
最佳答案
是的,这是可能的,但是,您必须等待请求完成才能这样做。但是,由于您不能有效地强制 return
等待数据存在,您唯一的选择是返回一个延迟对象,或者以允许的方式重写函数它接受回调。
function getPoints(){
return $.ajax({
url: "js/retrievePointsDataJson.php",
dataType:'json',
type: 'POST'
});
}
getPoints().done(function(data){
console.log(data);
});
或
function getPoints(callback){
return $.ajax({
url: "js/retrievePointsDataJson.php",
dataType:'json',
type: 'POST',
success: callback
});
}
getPoints(function(data){
console.log(data);
});
关于javascript - 在 Jquery Ajax 调用之外访问 JSON 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21031664/