X_Crystal 2015-10-26 15:27 采纳率: 0%
浏览 2587
已结题

ajax后台代码重复执行

自己写个小程序,遇到个奇葩问题,在点击按钮发送ajax请求查询数据的时候,数据能正常显示,但是在火狐控制台有报错,报错原因是说语法错误,ajax返回内容为 "请求参数不正确!" 这句话是我在Controller层返回的.如果参数缺失才会提示这个.但是我检查后发现并不是参数缺失,而且请求被重复提交,第二次提交参数都丢失了,有点像被重定向了.
第一次数据有正常返回在页面显示,但是不知道为什么会又提交一次,并且网络请求里面只有一次请求!!!

图片说明

图片说明

图片说明

图片说明

js代码如下,触发是查询按钮的点击事件:

js代码检查过不可能重复执行;

 function getData(startDate,endDate){
        var rows=[];
        $.ajax({
            url:"queryAllUser.do",
            type:"POST",
            async:false,
            data:{'startDate':startDate,'endDate':endDate},
            dataType:"json",
            success:function(data, textStatus){
                for(var i=0;i<data.length;i++){
                    rows.push({
                        userId: "<a href=''>"+data[i].userId+"</a>",
                        userName: data[i].userName,
                        id: data[i].id,
                        sex: data[i].sex,
                        birthday: data[i].birthday,
                        dateCreated: data[i].dateCreated,
                    });
                }
            }
        });
        var tbodyHtml="";
        for(var i=0;i<rows.length;i++){
            tbodyHtml+=
                "<tr>"+
                    "<td>"+rows[i].userId+"</td>"+
                    "<td>"+rows[i].userName+"</td>"+
                    "<td>"+rows[i].id+"</td>"+
                    "<td>"+rows[i].sex+"</td>"+
                    "<td>"+rows[i].birthday+"</td>"+
                    "<td>"+rows[i].dateCreated+"</td>"+
                    "<td><a class='btn' data-trigger='confirm' href='#'><i class='icon-edit icon-large'></i> Update</a>&nbsp;"+
                                "<a class='btn' href='#'><i class='icon-trash icon-large'></i> Delete</a></td>"+
                "</tr>"
        }
        if(rows.length==0){
            tbodyHtml+= "<td colspan='7' class='active' style='text-align: center;'>没有指定时间段的数据!</td>"
        }
        $("#dataBody").html(tbodyHtml);
    }

Controller层代码:

 @RequestMapping("/queryAllUser.do")
    public void queryAllUser(HttpServletRequest request ,HttpServletResponse response){
        List allUserList;
        try {
            PrintWriter out = null;
            if(!checkParam(request, startDate)){
                response.setCharacterEncoding(CommonStr.RETURN_CHARACTERENCODING );
                out = response.getWriter();
                out.write(CommonStr.CHECK_PARAM_ILLEGAL);//请求参数不合法!
            }else{
                out = response.getWriter();
                allUserList=userManagementService.queryAllUser(getParameter(request, startDate,endDate));
                JSONArray jsonAry=JSONArray.fromObject(allUserList);
                out.write(jsonAry.toString());  
            }
            out.flush();  
            out.close(); 
        } catch (IOException e) {
            e.printStackTrace();
        }  

    }
  • 写回答

4条回答 默认 最新

  • 菜鸟面条 2015-10-26 15:54
    关注

    getData 这个在页面刷新的时候,有没有出发执行呢??

    评论

报告相同问题?

悬赏问题

  • ¥50 buildozer打包kivy app失败
  • ¥30 在vs2022里运行python代码
  • ¥15 不同尺寸货物如何寻找合适的包装箱型谱
  • ¥15 求解 yolo算法问题
  • ¥15 虚拟机打包apk出现错误
  • ¥15 用visual studi code完成html页面
  • ¥15 聚类分析或者python进行数据分析
  • ¥15 三菱伺服电机按启动按钮有使能但不动作
  • ¥15 js,页面2返回页面1时定位进入的设备
  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复