培训教育系统记录总结 -- ajax请求处理成功却不进入success

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,如果出现上述问题,则很难被发现。当点击弹窗确定按钮后,网页可能一直卡在弹窗处,没有任何响应,尽管后台数据已经刷新。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值