【发布时间】:2024-05-29 11:35:02
【问题描述】:
我正在使用 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 语句时,它会提醒“成功”。
为什么不能成功比较两个字符串?
【问题讨论】:
-
试试
if($.trim(data) == "success")
标签: java javascript jquery ajax servlets