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



我使用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返回"success":

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语句时,它会警告"成功"。

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

在控制器中使用out.print("success")而不是out.println("success"),或者从Javascript data对象中修剪换行符

最新更新