如何访问传递回 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');
}
});
我假设是通过查询 "result" 对象,但是如何呢?我试过这个:
success: function (result) {
alert('success');
alert(result[0]);
},
...但在 "success" 警报之后只看到 "undefined" 警报。一个简单的 "alert(result)" 什么也没显示, "alert(result.data)"
控制器(在测试用例场景中)传回一个字符串,一个电子邮件地址。在 "real life" 用法中,它将是 0..N 个电子邮件地址,但现在它成功传回一个字符串,但由于某种原因它不在 "result" 中,或者我没有得到它应该提取出来。
更新
好的,现在我们有进展了;我在 "success" 函数中放置了一个断点,将鼠标悬停在其 "returneddata" 参数上,然后看到:
然而,当我将此代码添加到 "success" 回调时:
success: function (returneddata) {
alert('success');
alert(UnitReportPairEmailVals[0]);
},
(将 "returneddata" 替换为 "UnitReportPairEmailVals",这是 returneddata 的值),在进入第二个警报时我得到了 "Uncaught reference error: 'UnitReportPairEmailVals' is not defined"
更新 2
在我拼凑出几个不同的答案后,我写了一个关于如何做到这一点的提示 here。
Uncaught reference error: 'UnitReportPairEmailVals' is not defined
它本身没有在任何地方定义。它不是变量,它是变量上的 属性。具体来说,在 returneddata
。这里的变量基本上与它们在 C# 中的工作方式相同:
function (returneddata) {
alert(returneddata.UnitReportPairEmailVals[0]);
}
现在我已经成功地从 Ajax 调用了我的控制器方法(具体请参阅更新 2
在这种情况下,我传回一个 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');
}
});
我假设是通过查询 "result" 对象,但是如何呢?我试过这个:
success: function (result) {
alert('success');
alert(result[0]);
},
...但在 "success" 警报之后只看到 "undefined" 警报。一个简单的 "alert(result)" 什么也没显示, "alert(result.data)"
控制器(在测试用例场景中)传回一个字符串,一个电子邮件地址。在 "real life" 用法中,它将是 0..N 个电子邮件地址,但现在它成功传回一个字符串,但由于某种原因它不在 "result" 中,或者我没有得到它应该提取出来。
更新
好的,现在我们有进展了;我在 "success" 函数中放置了一个断点,将鼠标悬停在其 "returneddata" 参数上,然后看到:
然而,当我将此代码添加到 "success" 回调时:
success: function (returneddata) {
alert('success');
alert(UnitReportPairEmailVals[0]);
},
(将 "returneddata" 替换为 "UnitReportPairEmailVals",这是 returneddata 的值),在进入第二个警报时我得到了 "Uncaught reference error: 'UnitReportPairEmailVals' is not defined"
更新 2
在我拼凑出几个不同的答案后,我写了一个关于如何做到这一点的提示 here。
Uncaught reference error: 'UnitReportPairEmailVals' is not defined
它本身没有在任何地方定义。它不是变量,它是变量上的 属性。具体来说,在 returneddata
。这里的变量基本上与它们在 C# 中的工作方式相同:
function (returneddata) {
alert(returneddata.UnitReportPairEmailVals[0]);
}