Ajax数据未评估为空

时间:2013-06-25 19:28:53

标签: jquery ajax

我刚刚升级到jQuery 1.10.x,除了几个小的方法更改外,一切都按计划进行,但Ajax除外:

function get_folders_hierarchy_manual (object_folders) {
    $.ajax({
        url: base_url + "path/" + object_folders.child,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        cache: false,
        success: function (element) {
            if (element!=null) {
                for (var i=0;i<element.length;i++) {
                    // Do things.
                }
            } else {
                // Do something else.
            }
        }
    });
}

以前,当没有从数据源返回数据时,会触发“执行其他操作”部分。但是,自升级以来,这不再评估为空。

我甚至尝试使用error参数作为成功的辅助手段,但这也没有做任何事情。

我在元素表达式上设置了一个监视,并且在查询之间没有清空。说实话,我不知道它事先做了什么,因为我没有理由去看!

有什么想法吗?

为了清楚起见,element是一个对象数组,它总是计算为true;有一个长度和包含对象。

2 个答案:

答案 0 :(得分:0)

尝试数据真实化

 success: function (element) {
            if (element) {
                for (var i=0;i<element.length;i++) {
                    // Do things.
                }
            } else {
                // Do something else.
            }
        }

答案 1 :(得分:0)

最后,它是删除条件和添加错误参数的组合:

function get_folders_hierarchy_manual (object_folders) {
    $.ajax({
        url: base_url + "path/" + object_folders.child,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        cache: false,
        success: function (element) {
            for (var i=0;i<element.length;i++) {
                // Do things.
            }
        },
        error: function () {
            // Do something else.
        }
    });
}