2013-06-28 69 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