【问题标题】:How can I access the data passed back to an AJAX call?如何访问传回 AJAX 调用的数据?
【发布时间】:2016-04-22 18:34:15
【问题描述】:

现在我已经成功地从 Ajax 调用了我的控制器方法(有关详细信息,请参阅更新 2 here),我的下一步是访问从 Ajax 成功函数中的 Controller 方法传回的数据。

在这种情况下,我将返回一个 jsonified 通用字符串列表(0..N 字符串 vals)。

如何从 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]);
},

...但在“成功”警报之后只看到“未定义”警报。一个简单的“alert(result)”什么也没显示,“alert(result.data)”也是如此

控制器(在测试用例场景中)正在传回一个字符串,一个电子邮件地址。在“现实生活”的使用中,它将是 0..N 个电子邮件地址,但现在它已成功传回一个字符串,但由于某种原因它不在“结果”中,或者我没有把它从那里取出因为它应该被提取。

更新

好的,现在我们到了某个地方;我在“成功”函数中放置了一个断点,将鼠标悬停在其“返回数据”参数上,然后看到:

然而,当我随后将此代码添加到“成功”回调时:

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

(将“returneddata”替换为“UnitReportPairEmailVals”,即返回数据的值),在进入第二个警报时,我收到“未捕获的引用错误:'UnitReportPairEmailVals' 未定义”

更新 2

当我拼凑出几个不同的答案后,我写了一个关于如何做到这一点的提示here

【问题讨论】:

  • 在你浏览器的调试工具中,result的值是多少?
  • 它不允许我进入该方法 - 我可以在 AJAX 方法的开头放置一个断点,但 F10 将我一直带到它的结尾。 F11 将我带入了 jquery 本身的迷宫泥潭。
  • 如果你在回调中放置一个断点并且它从未被命中,那么回调根本就没有被调用。
  • 是的,因为我看到了“成功”警报。哦,我明白你的意思了——当我在那里设置断点时我确实命中了;我觉得奇怪的是,它开始时的断点,然后按 F10,并没有把我带进去。
  • 然后你可以放置一个断点来停止调试器并检查result的运行时值。我们无法真正猜测result 的结构是什么,但你可以检查一下。

标签: javascript jquery ajax asp.net-mvc generic-list


【解决方案1】:

未捕获的引用错误:未定义“UnitReportPairEmailVals”

它本身没有在任何地方定义。它不是变量,它是变量的属性。具体来说,在returneddata。这里的变量本质上与 C# 中的工作方式相同:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-19
    • 2011-08-15
    • 1970-01-01
    • 2011-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多