java - 无法比较 AJAX 调用返回的字符串

标签 java javascript jquery ajax servlets

我正在使用 AJAX 来检查用户的登录详细信息是否正确。目前,如果详细信息正确,我会输出“成功”,该信息将返回到 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) 
                {

                    if(data == "success"){
                        alert(data);
                    }


                },
                error: function(jqXHR, textStatus, errorThrown) 
                {
                    $("#loginResult").html("<p>ss"+errorThrown+textStatus+jqXHR+"</p>");
                }
            });
    }else{
        $("#loginResult").html("<p>Unable to login: ensure details are correct.</p>");
    }
});

并且 HomeController 返回“成功”:

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

    // 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");

            out.println("success");

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

我知道它返回“成功”,因为当我删除 if 语句时,它会发出“成功”警报。

为什么它不能成功比较两个字符串?

最佳答案

在 Controller 中使用 out.print("success") 而不是 out.println("success"),或者从 Javascript 中删除换行符 数据对象。

关于java - 无法比较 AJAX 调用返回的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25122660/

相关文章:

java - 使用 Java 实现 Shopify 的 GraphQL

java - jetty maven Artifact 是jboss-jetty吗?

javascript - Zurb Foundation Orbit slider - 使非无限?

javascript - 使用 cypress 访问测试网站提供的 JavaScript 变量

jquery - 无法为正文中的内容设置动画

java - 使用 Spring @Transactional 进行 TestNG 多线程测试

java - Android OpenGLES 骨骼动画问题

javascript - 通过 console.log([...mapObject.entries()]) 将类似于控制台输出的 map 转换为字符串

jquery - Bootstrap 双列表框 : How to Limit Selected Option

javascript - 根据页面上的 SWF(Flash)元素创建图像? PHP/Jquery/Javascript/HTML/FLASH