如何使用 javascript / jQuery 获取数据 ajax api 数组?
Posted
技术标签:
【中文标题】如何使用 javascript / jQuery 获取数据 ajax api 数组?【英文标题】:how get data ajax api array using javascript / jQuery? 【发布时间】:2021-10-14 21:36:03 【问题描述】:如何使用 javascript 从列表 api 获取数据?我有列表使用 json 数据的 api .. 但是当我从列表一中获取数据时我被卡住了。这个案子我该怎么办?
"idMaster": "10",
"data": [
"id": "20",
"rateBPK": 3,
"updatedBy": "System"
,
"id": "30",
"rateBPK": 4,
"updatedBy": "System"
]
这是我的代码,但我无法返回数据
var dataBKP;
$.ajax(
type: 'POST',
dataType: 'json',
contentType: "application/json",
cache: false,
url: '@Url.Action("GetBpkOtrAsync", "SimulasiKredit")',
data: JSON.stringify(param),
success: function (Data, textStatus, jqXHR)
$.each(Data.data, function (i, rowData)
dataBKP = Number(rowData.rateBPK);
);
,
return dataBKP;
);
【问题讨论】:
【参考方案1】:首先,您的代码底部附近似乎存在一些语法错误。我认为您没有关闭 $.ajax()
调用,也没有关闭其中的对象。
其次,您似乎试图在成功函数触发之后返回dataBKP,但是您已经在成功函数之外编写了它。
成功回调异步运行,因此在 ajax 完成之后。在大多数情况下,这里的return
语句将在成功有机会运行之前触发。
解决方案是将其移至成功函数中:
var dataBKP;
$.ajax(
type: 'POST',
dataType: 'json',
contentType: "application/json",
cache: false,
url: '@Url.Action("GetBpkOtrAsync", "SimulasiKredit")',
data: JSON.stringify(param),
success: function (Data, textStatus, jqXHR)
$.each(Data.data, function (i, rowData)
dataBKP = Number(rowData.rateBPK);
);
return dataBKP;
);
如果您在嵌套组件中添加间距,您可能会发现更容易跟踪您已关闭的函数,因此您不会在末尾得到);
。
最后,您正在对数据运行 .each
循环,但每次传递都会覆盖 dataBKP
var。我会推荐连接、求和或推入数组。 (例如dataBKP = dataBKP + Number(rowData.rateBPK);
)。
编辑:在看到您进行了一些更改后,我猜您的帖子仍在不断变化。如果是这样,那么您可能已经知道我在上面列出的所有内容,并且您正在尝试纠正它们。在这种情况下,我想补充一点,您可能会遇到几件事:
首先,您要返回 dataBKP var,而不是 使用 它。这是一个令人困惑的话题,因为它们是异步加载的,但您可能会将其归还到无处。成功函数是一个无效函数。相反,请尝试记录成功函数,以便稍后看到它出现并了解其工作原理。
接下来,设置的 dataBKP 将因为范围而难以使用。
添加一个成功操作可以调用的函数,以便您的代码可以使用 dataBKP var。然后,考虑将其传入,以便以后可以重用该函数。然后传递值,而不是直接调用变量。像这样:
var dataBKP = 0;
var functionToManipulateThatDataAfterAjaxCall = function(data)
// do something with your data here
console.log("Called from within the success callback: " + dataBKP);
;
console.log("Just before the success callback: " + dataBKP);
$.ajax(
type: 'POST',
dataType: 'json',
contentType: "application/json",
cache: false,
url: '@Url.Action("GetBpkOtrAsync", "SimulasiKredit")',
data: JSON.stringify(param),
success: function (Data, textStatus, jqXHR)
$.each(Data.data, function (i, rowData)
dataBKP = Number(rowData.rateBPK);
);
console.log("Inside the success callback: " + dataBKP);
functionToManipulateThatDataAfterAjaxCall(dataBKP);
);
console.log("Just after the success callback: " + dataBKP);
【讨论】:
非常感谢您的回答。它非常有用。我真的很感谢你的回答。愿上帝保佑你以上是关于如何使用 javascript / jQuery 获取数据 ajax api 数组?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 JavaScript/JQuery 创建一个简单的地图 [重复]
如何在 jQuery 选择器中使用 JavaScript 变量?
如何使用 JavaScript 或 jQuery 更改数组内对象的值?