2013-06-28 23 views
0

编辑:可能已经研究好...现在阅读这篇文章:How do I return the response from an asynchronous call?阿贾克斯成功:功能(数据)是未定义

我有返回JSON数据的Ajax请求。当我在小提琴手中看到它时,它确实发送到服务并获取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

“GetSecurables”中的代码是什么? –

+0

也许是因为你没有指定dataType:json – LMeyer

回答

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,或者您在Ajax调用完成之前访问returndata