无法比较来自AJAX调用的返回String

时间:2014-08-04 15:50:13

标签: 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语句时,它会提示“成功”。

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

1 个答案:

答案 0 :(得分:3)

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