编辑:可以更好地研究...现在阅读这篇文章: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
}
]
答案 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调用完成之前。