使用javascript显示消息成功:数据ID为空

时间:2015-05-05 18:48:48

标签: javascript jquery

我有一个ajax函数,它从模型中获取json数据并将其显示在行中。该函数工作正常但我想在没有返回数据的情况下添加消息。我正在尝试的是不起作用,调试节目" accts"未定义?

任何帮助都会很棒!

使用Javascript:

//Submit form
$(function submit() {
    $('form').submit(function (e) {
            e.preventDefault();
            $("#searchResults").show();
            $.ajax({
                url: 'Home/TAPost',
                data: $('form').serialize(),
                dataType: "json",
                type: 'POST',
                success: function (accts) {
                    if (accts.success = false) {
                        $("#Error").text('No Accounts were found for the information provided.');
                    }
                    else {
                        $.each(accts, function (index, acct) {
                            $("#rows").append('<tr><td>' + acct.CustomerName + '</td><td>' + "     " + acct.SSN + '</td><td>' + "     " + acct.FHBOATAcctNumber + '</td><td>'
                                + "     " + acct.OriginalAcctNumber + '</td><td>' + "     " + acct.ProductType + '</td></tr>');
                        });
                    }
                }
            });
            return false;
    });
});

1 个答案:

答案 0 :(得分:1)

您的accts对象不包含success属性。如果您点击该行代码意味着您的请求成功。您必须测试是否从服务器接收任何数据。

这就是你如何做到的

success: function (accts) {
             if (!accts || ($.isArray(accts) && accts.lenght === 0) || $.isEmptyObject(accts)) {
                 $("#Error").text('No Accounts were found for the information provided.');
             }

首先测试你的accts对象中是否有值然后如果你使用数组发送数据测试它的长度知道它是否包含元素,如果你在对象测试中发送数据,如果它有任何属性与数据。

<强> {编辑}

在网络中,您可以发送包含空数据的成功回复。这意味着“您请求成功,但我们没有结果向您显示”,如果出现类似“您的请求不是合法形式”或“您无权提出此请求”的情况,则会出现错误。

你可以随心所欲地使用它,网络就像那样灵活,但是使用错误来表示“没有结果”被许多人认为是糟糕的设计。失败的请求通常与它的状态代码相关联,并且已经有一个状态代码来表示没有数据,204或“无内容”。请改用它。