Ajax成功:数据长度未定义

Hum*_*Ali 4 ajax jquery

为什么我在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();
    }
});
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

Ror*_*san 6

你的data对象没有length属性(并且Object没有像Arrays那样的对象),所以它就是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);
    }
});
Run Code Online (Sandbox Code Playgroud)