gpt4 book ai didi

java - 为什么 AJAX 调用成功后 servlet 不转发?

转载 作者:行者123 更新时间:2023-11-30 11:15:57 24 4
gpt4 key购买 nike

我试图在用户成功登录后将其转到 admin.jsp 页面。用户名和密码的检查是通过 AJAX 完成的。一切正常,直到我尝试将它们转发到 admin.jsp 页面,这是抛出 AJAX 错误的时候。

这是 AJAX:

$("#loginForm").submit(function(e){
e.preventDefault(); //STOP default action
var postData = $("#loginForm").serializeArray();
var username = $("#username").val();
var password = $("#password").val();

if(username.length > 0 && password.length){
$.ajax(
{
type: "POST",
url : "HomeController",
data : postData,
success: function(data)
{
$("#loginResult").html(data);


},
error: function(jqXHR, textStatus, errorThrown)
{
$("#loginResult").html("<p>ss"+errorThrown+textStatus+jqXHR+"</p>");
}
});
//$("#loginForm").hide();


}else{
$("#loginResult").html("<p>Unable to login: ensure details are correct.</p>");
}
});

这是处理登录的 servlet:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String form = request.getParameter("form");
String views = "/WEB-INF/views/";

// check login details
if(form.equals("loginForm")){
String username = request.getParameter("username").trim();
String password = request.getParameter("password").trim();

PrintWriter out = response.getWriter();

password = loginService.hashPassword(password);
boolean isValidUser = loginService.checkUser(username, password);

if(isValidUser){
// set session
HttpSession session = request.getSession();

session.setAttribute("loggedIn", "true");
response.sendRedirect(views + "admin.jsp");

}else{
out.println("Incorrect login details.");
}


}

}

为什么 AJAX 调用收到错误并且没有转发到 admin.jsp 页面?

最佳答案

您不能重定向到 WEB-INF 内的资源。根据设计,该目录中的所有资源对浏览器都是不可见的。

要么将 JSP 保留在 WEB-INF 之外,要么转发到 JSP。

RequestDispatcher view = request.getRequestDispatcher("/WEB-INF/views/admin.jsp");
view.forward(request, response);

注意:转发/包含不会更改浏览器中的 URL。

Read more...

关于java - 为什么 AJAX 调用成功后 servlet 不转发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25105973/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com