js代码:
$(document).ready(function(){
var url = "teachers/getSchoolList.do";
$.ajax({
type: "POST",
url: url,
//async : false,
dataType:"text",
success : function(data) {
alert(data);
alert("8888");
var str="<dl>";
console.log(data);
$.each(data.list,function (i, value) {
str=str+"<dd data-name='"+value[i].SCHOOLNAME+"'>"+value[i].SCHOOLNAME+"</dd>";
});
str = str+"</dl>";
$(".erjimenu").html(str);
},
error:function(data){
console.log(data);
$("#form-notice").html('获取学校出错,请重新获取');
}
});
})
后台代码:
@RequestMapping(value="/getSchoolList")
public Object getSchoolList()throws Exception{
ModelAndView mv = this.getModelAndView();
PageData pd = new PageData();
pd = this.getPageData();
Map<String, Object> map = new HashMap<String, Object>();
List<PageData> schoolList = this.schoolService.listAll(new PageData());
map.put("list", schoolList);
return AppUtil.returnObject(pd, map);
}
从中看出是dataDeal中的$.each()函数执行报的错,在执行each时,传入的参数为undefined
或为null时也会有此错误'length' of null
......
答案就在这里:Uncaught TypeError: Cannot read property 'length' of undefined
----------------------Hi,地球人,我是问答机器人小S,上面的内容就是我狂拽酷炫叼炸天的答案,除了赞同,你还有别的选择吗?
检查下你的对象内容是否为null
data.list有值吗
关键是我使用debug模式,都不能进入对应的controller方法。
这种情况都是一些值为空啊
就没见你代码调用对象的length属性,贴错代码了吧