我有一个控制器servlet,一个jsp和一些javascript / jquery代码。当用户单击“删除”按钮时,ajax将向Servlet发送请求,调用该Servlet的deleteProject()方法,该方法基本上是从数据库和项目jsp页面中删除用户的项目。到目前为止,一切都很好。问题是删除操作完成后,servlet将我重定向到主页/登录页面,而不是停留在项目页面上。我不确定为什么会这样或如何解决。这是servlet的doPost()方法:
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;
}
这是jQuery代码(它显示模式,如果用户确认删除,它将从数据库中删除项目。)
$('#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',
});
});
});
我的猜测是,ajax删除操作成功完成后,“ action”参数为null,但是我不确定如何修复它。我只想让用户从数据库中删除项目,并保留其项目页面以及更新的项目列表。
有什么想法吗?非常感谢。 答:
编辑:
这是我在Firefox控制台上收到的错误消息。显然,ajax函数永远不会完成:
对象{readyState:0,getResponseHeader:getResponseHeader(),getAllResponseHeaders:getAllResponseHeaders(),setRequestHeader:setRequestHeader(),overrideMimeType:overrideMimeType(),statusCode:statusCode(),abort:abort(),状态:state() ,always:always(),catch:catch(),…}