【问题标题】:ajax webapi call returns undefinedajax webapi调用返回未定义
【发布时间】:2017-05-02 18:40:28
【问题描述】:

我正在关注一些在线ajax教程,示例是关于使用GET方法调用webapi,这里是页面上的脚本部分

<script type="text/javascript">
    $(document).ready(function () {
        var ulEmployees = $('#ulEmployees');
        $('#btn').click(function () {
            $.ajax({
                type: 'GET',
                url: "http://localhost:35468/api/employee",
                dataType: 'json',
                async: true,
                success: function (data) {
                    ulEmployees.empty();
                    $.each(data, function (index, value) {
                        var fullName = value.FirstName + ' ' + value.LastName;
                        ulEmployees.append('<li>' + fullName + '</li>');
                    });
                }
            });
        });
        $('#btnClear').click(function () {
            ulEmployees.empty();
        });
    });
</script>

它应该在 .

的列表项中呈现 emoloyee 的名字和姓氏
<div>
    <input id="btn" type="button" value="Get All Employees" />
    <input id="btnClear" type="button" value="Clear" />
    <ul id="ulEmployees">

    </ul>
</div>

每个函数在对象上迭代,但它在 html 中显示为 undefined

有人知道解决办法吗?

【问题讨论】:

  • data 的值是多少?服务器实际返回了什么?
  • 这意味着 value.FirstNamevalue.LastName 未定义在响应中未定义。要获得更好的细节,请在循环中插入一个调试器,看看你得到了什么。
  • 如果数据有 JSON 字符串,那么你需要先使用 JSON.parse() 函数将其解析为 JSON 对象。
  • value 是在每个函数中接收数据的第二个对象,我正在尝试填充传递给函数的值对象的属性 firstName 和 lastName,它循环正常但只是呈现未定义。
  • @Nishesh 我正在使用 parse 方法,看看是否能解决问题,fiddler 显示 json 对象返回正常,未定义
  • 的数量呈现在page 与我的 sql 表中的行数匹配。

标签: javascript jquery ajax asp.net-web-api


【解决方案1】:

解决了

问题是因为字段名称 FirstName 和 LastName 不正确, 正确的字段名称是 firstName 和 lastName 这就是对象没有以正确方式填充它们的原因。

【讨论】:

    猜你喜欢
    相关资源
    最近更新 更多
    热门标签