「已注销」 2015-10-26 15:27 采纳率: 0%
浏览 2588
已结题

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 这个在页面刷新的时候,有没有出发执行呢??

    评论

报告相同问题?

悬赏问题

  • ¥20 全书网Java爬取数据
  • ¥15 SAP HANA SQL Script 。SUM OVER 怎么加where
  • ¥15 怎么获取红包封面的原始链接,并且获取红包封面序列号
  • ¥100 微信小程序跑脚本授权的问题
  • ¥60 为什么使用python对地震数据进行umap降维后,数据成图会出现不连续的现象
  • ¥100 房产抖音小程序苹果搜不到安卓可以付费悬赏
  • ¥15 STM32串口接收问题
  • ¥15 腾讯IOA系统怎么在文件夹里修改办公网络的连接
  • ¥15 filenotfounderror:文件是存在的,权限也给了,但还一直报错
  • ¥15 MATLAB和mosek的求解问题