java - 使用 AJAX 和 Java 注销不起作用

标签 java jquery ajax servlets

我有使用 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/

相关文章:

java - 使用名称方法查找类型异常

javascript - 由外部 DIV 控制的可滚动 DIV(用于触摸屏)。 jQuery HTML5

javascript - 表格行突出显示不适用于动态行

jquery - 使用 jQuery 隐藏 Div 和滚动到 anchor

php - jQuery Ajax 在 php 同一页面上传递值

java - vert.x 提供静态文件

java - javax.net.ssl.SSLSession 创建时间是多少?

Java:为什么不应该将 clone() 用于防御性复制?

javascript - 在 Controller 中重定向后停止 setTimeout

Javascript 更改 XMLHttpRequest onreadystatechange 回调