我有使用 jQuery 的 AJAX,当我单击 ID 为 logOut
的链接时会触发该 AJAX。 .
AJAX:
$("#logOut").click(function(){
$.ajax({
url: "Logout"
});
});
AJAX 调用我的 Java Servlet,如下所示:
/**
* Servlet implementation class Logout
*/
@WebServlet(description = "Logout User", urlPatterns = { "/Logout" })
public class Logout extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*//*
public Logout() {
super();
// TODO Auto-generated constructor stub
}*/
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpSession session = request.getSession();
session.invalidate();
response.setStatus(response.SC_MOVED_TEMPORARILY);
response.setHeader("Location", "index.jsp#login");
}
}
当单击链接时,我的 jQuery 总是会触发,但它似乎并不总是调用注销 Java Servlet。为什么会发生这种情况?
编辑:
当我使用 Chrome 开发工具单步执行 jQuery 代码时,它可以工作,但正常运行时则不行。
HTML:
<li><a class="linkButtons" href="" id="logOut">Log Out</a></li>
最佳答案
在 HTML 代码中,您需要将 servlet 的 URL 映射放入 href
属性中:
<li><a class="linkButtons" href="Logout" id="logOut">Log Out</a></li>
这样,当提交时,请求将被发送到正确的 URL。
关于java - 使用 AJAX 和 Java 注销不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20802147/