这是我的客户端代码:
$.ajax({
url: 'http://localhost/App.WebAPI/api/Messages/AppName',
type: 'GET',
dataType: 'json',
crossDomain: true,
success: function (data) {
WriteResponse(data);
},
error: function (x, y, z) {
alert(x + '\n' + y + '\n' + z);
}
});
function WriteResponse(messages) {
var strResult = "<table><th>AppId</th><th>Message</th>";
$.each(messages, function (index, message) {
strResult += "<tr><td>" + message.AppId + "</td><td> " + message.Message + "</td></tr>";
});
strResult += "</table>";
$("#divResult").html(strResult);
}
Ajax调用中的URL返回3条记录,但是当它们通过“WriteResponse”输出到浏览器时,这就是我得到的(模糊以保护公司信息):
我的.each方法是否形成不正确?我不是jQuery的专家,所以如果我搞砸了一些简单的东西,我也不会感到惊讶。请注意,它确实看到了所有3条记录,但它在第2和第3条记录中输出“未定义”...任何想法为什么?
答案 0 :(得分:0)
问题是我在我的表(MSSQL)中定义了一个外键关系 - 我正在使用实体框架 - 所以当WebAPI返回JSON时,外键被包含在JSON中,如预期的那样,但由于某种原因,它使JSON看起来很时髦。我删除了表格中的所有关系,再次运行API调用,现在我恢复了所有记录。
但我知道只是解决了使用外键的问题,我将进一步调查。