1.项目中功能描述:
1.1 在操作列表中点击删除符号:
1.2 弹出提示框后,点击确认则删除对应的一行,并刷新页面;点击取消则不做任何操作:
2.项目中功能代码实现:
2.1 前台页面:
<a title="删除" href="javascript:;"onclick="member_del(this,'${user.id}')"style="text-decoration:none">
/*用户-删除*/
function member_del(obj,id){
layer.confirm('确认要删除吗?',function(index){
//发异步删除数据
$.ajax({
type: "post", //数据提交方式(post/get)
url: "${pageContext.request.contextPath}/user/delete.do", //提交到的url
data: {"id":id},//提交的数据
dataType: "json",//返回的数据类型格式
success: function(mes){
layer.msg("删除成功!",{icon:1,time:1000});
window.location.reload();
},
error:function(data){
alert("error");
}
});
});
}
2.2 后台页面:
/**
* 通过id删除用户
* @param id
* @param model
* @return
*/
@RequestMapping("delete")
public String delete(Integer id,Model model){
userService.delete(id);
return "forward:findAllUser.do";
}
3.问题描述:
ajax提交数据成功,后台接收到正确参数而且删除了对应的数据库数据,但是ajax却进入了error:
4.问题产生原因及解决:
前台编写ajax请求时,写了返回的数据类型是json格式,
但后台操作完成后,并没有传给前台任何数据,而且假设有传回数据,如果返回的数据类型不是严格按照json格式,则会进入error函数中。
所以按照现阶段代码,可以将返回数据类型那行代码删除,不指定返回数据类型,就可以解决上述问题!!!
另外:
当然,如果你没有在ajax中写error函数而只写了success,如果出现上述问题,则很难被发现。当点击弹窗确定按钮后,网页可能一直卡在弹窗处,没有任何响应,尽管后台数据已经刷新。