Ajax成功:函数(数据)未定义

时间:2013-06-28 19:51:29

标签: ajax json

编辑:可以更好地研究...现在阅读这篇文章:How do I return the response from an asynchronous call?

我有一个返回JSON数据的ajax请求。当我在fiddler中观察它时,它会转到服务并获取JSON数据,但是当我尝试将变量设置为它的响应时,该变量是“未定义的”。如果我在成功方法中alert,它会发出警报,但变量仍未定义。

我尝试将function(data)更改为function(something)与其有关的事情......同样的故事。

var returndata
$.ajax({
    type: "GET",
    url: "GetSecurables/",
    data: { etaNumber: etaNumber },
    success: function (data) {
        returndata = data; //undefined
        alert('haaalp');
    }
});

JSON如下所示

[
  {
    "DelegateSid":null,
    "DisplayName":"Tom",
    "HasDelegation":true,
    "HasEtaManagement":false
  },
  {
    "DelegateSid":null,
    "DisplayName":"Tim",
    "HasDelegation":true,
    "HasEtaManagement":false
  },
  {
    "DelegateSid":null,
    "DisplayName":"Jake",
    "HasDelegation":true,
    "HasEtaManagement":false
  },
  {
    "DelegateSid":null,
    "DisplayName":"Ryan",
    "HasDelegation":true,
    "HasEtaManagement":false
  }
]

1 个答案:

答案 0 :(得分:1)

尝试:

var returndata;

$.ajax({
    type: "GET",
    url: "GetSecurables/",
    data: { etaNumber: etaNumber },
    success: function (data) {
        console.log(data);
        returndata = data; 
        console.log(returndata);
    }
});

如果2个输出相同,则可能是您尝试从其范围外访问returndata,因此undefined或您正在访问的returndata {{1}}在Ajax调用完成之前。