从Ajax GET调用返回JSON - 在除JSON对象中的第一个记录之外的所有记录上接收未定义的错误

时间:2013-12-30 15:07:35

标签: javascript jquery ajax json

这是我的客户端代码:

$.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”输出到浏览器时,这就是我得到的(模糊以保护公司信息):

enter image description here

我的.each方法是否形成不正确?我不是jQuery的专家,所以如果我搞砸了一些简单的东西,我也不会感到惊讶。请注意,它确实看到了所有3条记录,但它在第2和第3条记录中输出“未定义”...任何想法为什么?

1 个答案:

答案 0 :(得分:0)

问题是我在我的表(MSSQL)中定义了一个外键关系 - 我正在使用实体框架 - 所以当WebAPI返回JSON时,外键被包含在JSON中,如预期的那样,但由于某种原因,它使JSON看起来很时髦。我删除了表格中的所有关系,再次运行API调用,现在我恢复了所有记录。

但我知道只是解决了使用外键的问题,我将进一步调查。