簡體   English   中英

如何訪問傳遞回 AJAX 調用的數據?

[英]How can I access the data passed back to an AJAX call?

現在我已經成功地從 Ajax 調用了我的控制器方法(有關詳細信息,請參閱此處的更新 2),下一步是訪問從 Ajax 成功函數中的控制器方法傳回的數據。

在這種情況下,我將傳回一個 jsonified 通用字符串列表(0..N 字符串值)。

如何從嵌入在 jquery ajax 調用中的成功函數訪問它們:

var model = JSON.stringify({ unit: unitval, report: rptval });
$.ajax({
    type: 'GET',
    url: '@Url.Action("GetUnitReportPairEmailAddresses", "UnitReportPair")',
    data: { unit: unitval, report: rptval }, // data: model,
    contentType: 'application/json', //<= this is paired with stringify above; if comment out one, comment out both
    cache: false,
    success: function (result) {
        alert('success');
        alert(result.data);
    },
    error: function () {
        alert('failure');
    }
});

我假設它是通過查詢“結果”對象,但如何? 我試過這個:

success: function (result) {
    alert('success');
    alert(result[0]);
},

...但只在“成功”警報后看到“未定義”警報。 一個簡單的“警報(結果)”什么也沒顯示,“警報(結果.數據)”也是如此

控制器(在測試用例場景中)正在傳回一個字符串,一個電子郵件地址。 在“現實生活”的用法中,它將是 0..N 個電子郵件地址,但現在它成功地傳回了一個字符串,但由於某種原因它不在“結果”中,或者我沒有從那里得到它因為它應該被提取。

更新

好的,現在我們到了某個地方; 我在“成功”函數中放置了一個斷點,將鼠標懸停在它的“返回數據”參數上,然后看到:

在此處輸入圖片說明

然而,當我將此代碼添加到“成功”回調時:

success: function (returneddata) {
    alert('success');
    alert(UnitReportPairEmailVals[0]);
},

(用作為返回數據值的“UnitReportPairEmailVals”替換“returneddata”),在進入第二個警報時,我收到“未捕獲的引用錯誤:'UnitReportPairEmailVals'未定義”

更新 2

一旦我將幾個不同的答案拼湊在一起,我就在這里寫了一個關於如何做到這一點的提示

未捕獲的引用錯誤:未定義“UnitReportPairEmailVals”

它本身沒有在任何地方定義。 它不是一個變量,它是一個變量的屬性。 具體來說,在returneddata 此處的變量的工作方式與它們在 C# 中的工作方式基本相同:

function (returneddata) {
    alert(returneddata.UnitReportPairEmailVals[0]);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM