0

我的 servlet 响应一个包含“false”或“true”的字符串 => Servlet 代码:out.println(validusername); validusername 是来自我的 servlet 的字符串,它转到我的 javascript 中的 var validusername。

所以在我的前端,我有这个javascript代码:问题是当我的servlet返回false时,javascript总是跳到“else”中。我想知道为什么..搜索这个几个小时。我知道我的 servlet 以“false”响应,因为 alert(validusername) 出现一个弹出窗口,其中包含文本“false”...你们知道为什么 validusername =="false" 总是跳到我的 else标签?

我认为比较有问题,但我找不到它......

非常感谢你的帮助

var validusername = xmlhttp.responseText; 
 if (validusername == "false") {

  alert("username already exists");
 }
 else {

 alert("username free");
 alert(validusername); //this popup contains the value "false"
4

2 回答 2

1

从今天起停止使用alert(...),改用“console.log(...)”。它将数据打印到 Web 控制台,您可以更好地了解正在发生的事情。它也不会阻止您的页面。如果没有关于正在发生的事情的信息,第一个建议是强制验证所有数据。即使您拥有 servlet。

强制if (validusername == "false")正确解析,而不是使用if (validusername.trim() === "false")-- 现在如果它失败了,至少字符串不能“看起来”像假而不实际上是“假”。

于 2013-06-08T13:59:06.073 回答
0

可能您需要修剪字符串并进行比较。

validusername = validusername.replace(/^\s+|\s+$/g,"");
于 2013-06-08T13:57:41.903 回答