我有返回json的javascript ajax调用,我正尝试将其放在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
答案 0 :(得分:1)
如注释中所述,您的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中。