$(function() {
var sineData;
$.ajax({
url : '../_php/loadFromDB.php',
type : 'POST',
data : 'getSines',
dataType : 'json',
success : function (result) {
console.log(result);
sineData=result;
},
error : function () {
alert("error");
}
})
});
在Console-> All-> firebug中的响应我按预期得到以下内容:
[{"userID":"1","email":"user@mail.com","number":"800.256.6547","ext":"5788","startDay":"Sunday","endDay":"Thursday"}]
但是当我看sineData
时,它是未定义的。
我希望能够访问sineData[0].email
我哪里错了?
async: false,
最终为我解决了这个问题,但对于大多数应用来说可能不是最佳解决方案。
答案 0 :(得分:1)
您可能正在访问ajax调用之外的sineData。您正在尝试在异步调用完成之前访问它。试试这个:
function whenIsDone(result){
// Do whatever you want with the variable result
console.log(result[0].email);
}
$.ajax({
url : '../_php/loadFromDB.php',
type : 'POST',
data : 'getSines',
dataType : 'json',
success : whenIsDone,
error : function () {
alert("error");
}
})