在我的jsp页面上有这些js代码:
//载入数据 $(document).ready(function() { var param={}; param.page=3; param.size=10; $.post(home+"/user/queryAllInfo",param, function(result) { if(result !=null && result.success) { var obj =result.rows; for ( var i = 0; i < obj.length; i++) { var user =obj[i]; var tr = "<tr><td>" + user.MEMBERNAME + " </td> <td>" + user.ACCOUNTNUMBER + " </td> <td>" + user.AGE + " </td> <td>" + user.GENDER + " </td> <td>" + user.BIRTHDAY + " </td> <td>" + user.MEMBER_LABEL + " </td>"; $(".userTable").append(tr); } }else { alert(result.msg); } },"json" ); }); function onOK() { alert("OK?"); $("#loaddiv").text("ok"); }
当訪问这个页面时。google浏览器按F12 会提示Uncaught ReferenceError: $ is not defined 错误,并提示是 $(document).ready(function() { 是这行出错。
猜想: 1.以为是引入的jquery.js 文件版本号的不匹配,更换后还是出错。
2.有以为是导入的其它js文件产生冲突导致的。
3. jquery.js文件的路径错误。
4. 载入js文件的顺序的问题,又把jquery.js放到第一位。
上面几种方法还是提示出错。
接着在页面 加入了一个 onOK()事件,里面有$("#loaddiv").text("ok"); 发现这个能够没有问题,所以认为应该不是jquery.js的错误。
把代码放到 onOk函数中:例如以下
function onOK() { alert("OK?"); var param={}; param.page=3; param.size=10; $.post(home+"/user/queryAllInfo",param, function(result) { if(result !=null && result.success) { var obj =result.rows; for ( var i = 0; i < obj.length; i++) { var user =obj[i]; var tr = "<tr><td>" + user.MEMBERNAME + " </td> <td>" + user.ACCOUNTNUMBER + " </td> <td>" + user.AGE + " </td> <td>" + user.GENDER + " </td> <td>" + user.BIRTHDAY + " </td> <td>" + user.MEMBER_LABEL + " </td>"; $(".userTable").append(tr); } }else { alert(result.msg); } },"json" ); $("#loaddiv").text("ok"); }
发现没有出现之前的Uncaught ReferenceError: $ is not defined 错误,而是提示 406 (Not Acceptable) 。百度查找后406 (Not Acceptable)后才知道原来在controller控制层用到了@ResponseBody ,要把对象转换成json格式。缺少转换依赖的jar包 ,后来加入了jackson-xc-1.8.3.jar ,jackson-mapper-asl-1.9.2.jar jackson-core-asl-1.9.2.jar ,jackson-jaxrs-1.8.3.jar 。json-lib-2.4-jdk15.jar 这些包。程序执行正常了。
json包下载:http://download.csdn.net/detail/u013147600/9023171