繁体   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