在使用easyui完成记录的CRUD时,改用jsp+dao+servlet的MVC模式,结果在测试修改功能时,firebug中一直报这个错。
expected expression, got ')'
一直以为是js代码本身有问题,可是添加新记录和修改记录用的是同一段js代码,为什么添加时能成功而修改就总是出这个错呢?二者的区别只是提交时分别指向了不同的url,仔细检查了update时的url,并未发现格式上和添加时有什么区别。
最后发现居然是因为服务器端引起的,使用了easyui后,要求返回的是json数据,但后台返回的是null.
再进一步分析,原来是easyui使用ajax处理从服务器端返回的响应数据时造成的:
function saveBook(){
$('#fm').form('submit',{
url: url,
onSubmit: function(){
alert('post to:'+url);
return $(this).form('validate');
},
success: function(result){
alert('success!result='+result);
var result = eval('('+result+')');
alert('result='+result);
if (result.errorMsg){
$.messager.show({
title: '错误',
msg: result.errorMsg
});
} else {
$('#dlg').dialog('close'); // close the dialog
$('#dg').datagrid('reload');// reload the user data
}
}
});
}
在success的回调函数中,需要对服务器返回的result进行处理,但是因为服务器端并未返回任何响应内容,故而在var result=eval('('+result+')')这句时出现了上述的错误。