在AJAX调用时返回DATA对其遍历出错

 function initrecomm(){
    jQuery.ajax({
        url:"../home!toQualityHouse.do",
        data:{},
        dataType:"json",
        async:false,
        type: "post",
        success: function (data){
            for(var i=0;i<data.length;i++){
                $("#rec_2").append("<li><a>"+data[i].square+"</a></li>");
            }
        }

    });
}

报了这个错Uncaught TypeError: Cannot read property 'length' of null
如果不用LENGTH 给其指定一个长度 他有会报
Uncaught TypeError: Cannot read property '0' of null

这是 为啥呀。。。。

加下面2句看输出什么,明显你的data不是数组


        success: function (data){
                alert(data)
                alert(JSON.stringify(data))

data 不应是json 格式么的 你把那个data.length 换成 data.data.length试试

大哥,最简单的办法,在success那行打个断点调试一下,看下你的data是否有返回值,返回值是什么。

你接受到的不是数组 是js对象 所以循环情用for in 循环

你用不用谷歌浏览器调试工具?直接加一行代码console.info(data),打印到浏览器控制台,data里面的内容一目了然

你data返回的是json格式 你因该调用后台传来的属性,data。属性获取。。。