javascript - 从 ajax 调用返回 JSON 到 HTML div
问题描述
我有我的 javascript ajax 调用返回 json,我正试图把它放在 HTML 页面上。
我使用这段代码:
success: function(response) {
console.log(response);
for (var i=0;i<response.length;++i)
{
$('#main').append('<div class="name">'+response[i].name+'</>');
}
},
error: function(response) {
alert(response);
}
});
然而,似乎将 json 打印到我的控制台就好了,但我没有得到任何返回到网站的东西。
我有一个 div 来收集它:
<div id="main">Test</div>
知道我哪里出错了吗?
编辑:控制台日志响应是这样的:
{totalPages: 0, firstPage: true, lastPage: true, numberOfElements: 0, number: 0, …}
columns: {columnIds: Array(3)}
firstPage: true
lastPage: true
number: 0
numberOfElements: 0
oberonRequestXML: [null]
oberonResponseXML: [null]
summaryData: {totals: Array(3)}
totalElements: 0
totalPages: 0
__proto__: Object
解决方案
正如评论中所解释的,您的 JSON 响应不是一个数组——没有length
属性,因此您的循环不会循环。此外,您似乎期望一个包含具有name
属性的对象的数组。这在您得到的回复中无处可见。
假设您正在调用正确的 JSON 服务,您可以迭代的唯一信息存储在两个属性中:columns.columnIds
和summaryData.totals
. 所以你会得到一些东西,如果你这样编码:
console.log(response);
for (var i=0;i<response.columns.columnIds.length;++i) {
$('#main').append('<div class="name">'
+ response.columns.columnIds[i]
+ ': '
+ response.summaryData.totals[i] + '</div>');
}
这假设这些值是原始值,从您得到的响应中并不清楚。
但同样,这不会输出name
属性值,因为它们不会出现在您的 JSON 中,只要您的问题中可见。
推荐阅读
- git - 将代码推送到分支时出现 Git TypeInitializationException
- javascript - 如何取消订阅 Firestore 获取数据?
- c# - 使用 C#.net 提取 APi 调用
- delphi - 用代码装饰 TImageCollection 图像
- python - 添加包含 -1 的列表并将其与整数相乘的目的是什么?
- php - 如何从多对多mysql关系中选择唯一值
- reactjs - 是否有一个谷歌地图 API 可以返回一个多边形来映射特定位置的边界?
- cmake - 在 CMake 配置文件中查找辅助依赖项
- c# - 循环遍历 IEnumerable 不返回任何内容
- python - pydeck r.show() 输出 TypeError: vars() 参数必须具有 __dict__ 属性