Ajax成功:数据长度未定义

时间:2016-11-16 08:58:31

标签: jquery ajax

为什么我在ajax.sucess中的data.length中未定义?

以下是代码,为简洁起见,删除了一些部分:

$.ajax({
    data: JSON.stringify(data),
    url: urlGetProviderQualificationTimeData,
    type: 'POST',
    contentType: "application/json; charset=utf-8",
    success: function (data) {
        if (data.length > 0) {
            $("#loading").hide();
            $("#providerqualification-main").show();
            $("#tblProviders").show();
            SetHeaderFields(data);
        } else {
            $("#NoRecordFound").show();
            $("#providerqualification-main").hide();
        }
    },
    complete: function (e) {
        $("#loading").hide();
    }
});

enter image description here

1 个答案:

答案 0 :(得分:6)

您的data对象没有length属性(并且对象没有像数组一样),所以它是undefined

考虑到代码的上下文,您只想检查返回的对象中是否包含某些数据。如果是这样,你可以使用它:

success: function (data) {
    if (!data || !Object.keys(data).length) {
        $("#NoRecordFound").show();
        $("#providerqualification-main").hide();
    } else {
        $("#loading").hide();
        $("#providerqualification-main").show();
        $("#tblProviders").show();
        SetHeaderFields(data);
    }
});