通过ajax访问从php文件返回的json对象

通过ajax访问从php文件返回的json对象,ajax,json,Ajax,Json,在firebug中的Console->All->Response下,我得到了如下预期结果: [{“userID”:“1”,“电子邮件”:user@mail.com“,”数字“:”800.256.6547“,”分机“:”5788“,”开始日期“:”星期日“,”结束日期“:”星期四“}] 但是当我看sineData时,它是未定义的 我希望能够访问这些值,如sineData[0]。电子邮件 我哪里做错了 async:false,最终为我解决了这个问题,但可能不是大多数应用程序的最佳解决方案。您可能在

在firebug中的Console->All->Response下,我得到了如下预期结果:

[{“userID”:“1”,“电子邮件”:user@mail.com“,”数字“:”800.256.6547“,”分机“:”5788“,”开始日期“:”星期日“,”结束日期“:”星期四“}]

但是当我看
sineData
时,它是未定义的

我希望能够访问这些值,如
sineData[0]。电子邮件

我哪里做错了



async:false,
最终为我解决了这个问题,但可能不是大多数应用程序的最佳解决方案。

您可能在ajax调用之外访问sineData。您正在尝试在异步调用完成之前访问它。试试这个:

$(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");
        }
    })

});

您是否在
success
功能之外访问
sineData
的可能重复项?@Khanh TO,我想是。我的印象是,我可以通过在顶部标记var并在
success
中为其分配一个值来实现这一点,该值仍然没有定义,并且没有日志。顺便说一句,为什么不在这里做(结果)呢?(试图这样做,但当然不起作用)“您正在尝试在异步调用完成之前访问它。”这让我思考,添加
async:false,
可以让我的原始代码正常工作。我将返回的对象只有10-15行长,所以我认为不异步不是问题,对吗?你能在jsfiddle.net上发布完整的非工作代码吗?
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");
      }
  })