在我的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