今天在使用Ajax Post方法时,发现无论如何回调函数就是不执行,最后通过万能的百度解决了该问题!
1.前台代码
$.post('${pageContext.request.contextPath}/user_deleteUser',{uid:row.uid},function(result){
if (result.errorMsg){
$.messager.show({
title: 'Error',
msg: result.errorMsg
});
} else {
$('#dg').datagrid('reload');
}
},'json');
2.后台代码
public String deleteUser() {
int count = userDao.deleteUser(model.getUid());
try {
PrintWriter writer = response.getWriter();
if(count<=0) writer.write("{'errorMsg':'删除失败'}");
else writer.write("{'success':'删除成功'}");
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
很明显前台代码并没有什么问题,后台代码在逻辑上貌似也没什么问题,最后百度得知回调的JSON数据格式问题,导致回调函数一直无法执行,原来JSON数据都要用双引号!
我的:{'hello':'world'}
标准:{"hello":"world"}
由于String不能双引号嵌套使用所以我们用转义符即可
{\"hello\":\"world\"}
大功告成!