比较javascript中的字符串(字符串来源于xmlhttp.responseText)
我的servlet响应一个包含“false”或“true”的字符串 =>Servlet代码:out.println(validusername);validusername是我的servlet中的一个字符串,它在我的javascript中指向var validusername 在我的前端,我有以下javascript代码: 问题是,当我的servlet返回false时,javascript总是跳转到“else”中。。我想知道为什么。。搜索了几个小时。 我知道我的servlet响应为“false”,因为警报(validusername)出现在一个弹出窗口中,其中包含文本“false”。。。你们知道为什么validusername==“false”总是跳进我的else标签吗 我认为比较有问题,但我找不到 非常感谢你的帮助比较javascript中的字符串(字符串来源于xmlhttp.responseText),java,javascript,ajax,servlets,xmlhttprequest,Java,Javascript,Ajax,Servlets,Xmlhttprequest,我的servlet响应一个包含“false”或“true”的字符串 =>Servlet代码:out.println(validusername);validusername是我的servlet中的一个字符串,它在我的javascript中指向var validusername 在我的前端,我有以下javascript代码: 问题是,当我的servlet返回false时,javascript总是跳转到“else”中。。我想知道为什么。。搜索了几个小时。 我知道我的servlet响应为“false”
var validusername = xmlhttp.responseText;
if (validusername == "false") {
alert("username already exists");
}
else {
alert("username free");
alert(validusername); //this popup contains the value "false"
可能需要修剪字符串并进行比较
validusername = validusername.replace(/^\s+|\s+$/g,"");
从今天起停止使用alert(…)
,改用“console.log(…)”。它会将数据打印到web控制台,您可以更好地了解正在发生的事情。它也不会阻止你的页面。如果没有关于发生了什么的信息,第一个建议是强制验证所有数据。即使您拥有servlet
强制
if(validusername==“false”)
正确解析,而不是使用if(validusername.trim()==“false”)
——现在如果失败,至少字符串不能“看起来”像false而实际上不是“false”。可能是因为您真正拥有的是false\n
?JavaScript有一个string.trim()
=)谢谢你,伙计!!这是可行的,我将使用console.log进行进一步调试