Java Servlets-Ajax重定向到主页

Java Servlets-Ajax重定向到主页,java,jquery,ajax,servlets,Java,Jquery,Ajax,Servlets,我有一个控制器servlet、一个jsp和一些javascript/jquery代码。当用户单击“删除”按钮时,ajax向servlet发送请求,调用servlet的deleteProject()方法,该方法基本上从数据库和项目jsp页面中删除用户的项目。到目前为止,一切顺利。问题是一旦删除操作完成,servlet就会将我重定向到主页/登录页面,而不是停留在项目页面上。我不知道为什么会发生这种情况,也不知道如何解决。以下是servlet的doPost()方法: 这是jQuery代码(它显示一个模

我有一个控制器servlet、一个jsp和一些javascript/jquery代码。当用户单击“删除”按钮时,ajax向servlet发送请求,调用servlet的deleteProject()方法,该方法基本上从数据库和项目jsp页面中删除用户的项目。到目前为止,一切顺利。问题是一旦删除操作完成,servlet就会将我重定向到主页/登录页面,而不是停留在项目页面上。我不知道为什么会发生这种情况,也不知道如何解决。以下是servlet的doPost()方法:

这是jQuery代码(它显示一个模式,如果用户确认删除,它将从数据库中删除项目)

我的猜测是,在ajax删除操作成功完成后,“action”参数为null,但我不确定如何修复它。我只想让用户从数据库中删除项目,并在他的项目页面上保留更新的项目列表

有什么想法吗?非常感谢。 A

编辑:

这是我在Firefox控制台上收到的错误消息。显然,ajax函数从未完成:


对象{readyState:0,getResponseHeader:getResponseHeader(),getAllResponseHeaders:getAllResponseHeaders(),setRequestHeader:setRequestHeader(),OverrideMetype:OverrideMetype(),statusCode:statusCode(),abort:abort(),state:state(),always:always(),catch:catch(),…}

如果servlet打算用作ajax资源,它应该执行任何重定向/转发操作,但您的servlet执行
dispatcher.forward(请求、响应)。这是使你的应用程序“重定向”的代码。您可以将某种类型的完成代码写入响应流,如
response.getWriter().write(“ok”)谢谢你的帮助。经过数小时的搜索,我发现问题是由提交按钮引起的。一旦我将其更改为input type=“button”,请求就完成了。我知道这听起来很可笑。
             protected void doPost(HttpServletRequest request, HttpServletResponse response)
                        throws ServletException, IOException {

                    RequestDispatcher dispatcher = null;
                    HttpSession session = request.getSession(true);
                    String base = "/jsp/";
                    String url = base + "/home.jsp";
                    String action = request.getParameter("action");

                    if (action != null) {
                        switch (action) {

                        case "Delete":
                            url = base + "projects.jsp";
                            String pid = request.getParameter("parameter_pid");
                            int project_id = Integer.parseInt(pid);
                            User user = (User) session.getAttribute("currentSessionUser");
                            deleteProject(user, project_id);                
                            break; 
     }      
         dispatcher = getServletContext().getRequestDispatcher(url);
                dispatcher.forward(request, response);      
        return;
}
$('#deleteprojectmodal').on('show.bs.modal', function (e) {

    var project_id = e.relatedTarget.id;    
    var project_name = e.relatedTarget.name;     
    $(this).find('.modal-body').html('Delete project: ' + project_name +"?" );    
    $('#parameter_pid').val(project_id); 


    $('#Delete').click (function ()
            {

                $.ajax({
                    url: '/Testing',
                    data: {
                        action: "Delete",
                        parameter_pid : project_id
                    },
                    type: 'post',

                });
            });

    });