我无法从JQery.ajax调用获取JSON对象的内容。我的电话:
$('#Search').click(function () { var query = $('#query').valueOf(); $.ajax({ url: '/Products/Search',type: "POST",data: query,dataType: 'application/json; charset=utf-8',success: function (data) { alert(data); for (var x = 0; x < data.length; x++) { content = data[x].Id; content += "<br>"; content += data[x].Name; content += "<br>"; $(content).appendTo("#ProductList"); // updateListing(data[x]); } } }); });
看起来正确地返回了JSON对象,因为“alert(data)”显示以下内容
[{"Id": "1","Name": "Shirt"},{"Id": "2","Name":"Pants"}]
content = data[x].Id; content += "<br>"; content += data[x].Name; content += "<br>";
它返回“未定义”到页面。我究竟做错了什么?
谢谢您的帮助。
解决方法
数据将作为JSON的字符串表示形式返回,并且不会将其转换回JavaScript对象。将dataType设置为“json”以使其自动转换。