我正在尝试比较从servlet返回的字符串
Servlet页面返回:
out.println("pass");
JavaScript的:
function Return() {
if (ajax.responseText === "pass") {
document.getElementById("pass").innerHTML = "This is valid number!";}
现在我输出("ajax.responseText")
并返回“pass”但我仍然无法在IF语句中验证它。
我尝试使用(.equal("pass")
我尝试使用==
,我甚至尝试了"var value = ajax.responseText;
,然后尝试value === "pass")
是的,我也试过了.toString()
..
它永远不会正确验证它总是进入ELSE语句......
答案 0 :(得分:0)
println
通常在字符串的末尾添加一个换行符(println
中的“ln”代表“line”),因此服务器返回的字符串值实际为{{1 (或类似的东西),它不等于"print\n"
。
如果可用,请使用
"pass"
不附加换行符。
比较之前答案 1 :(得分:0)
而不是原始函数Return
(未明确返回)
function Return() { // Why not checkPassword?
if (ajax.responseText === "pass") { // exactly equal
document.getElementById("pass").innerHTML = "This is valid number!";
}
}
尝试这样的事情(例如,大概应该是true
或false
,所以明确地这样做)...
function checkPassword() { // probably should pass arguments what the function does.
if (ajax.responseText.trim() == "pass") { // trim the response string
// ('pass\n' != 'pass')
console.log('Got a match!'); // Try logging it.
document.getElementById("pass").innerHTML = "This is valid number!";
return true; // return a value?
} else {
// Again, I would try adding some debug logging.
console.log('Did not match! ' + ajax.responseText);
}
return false; // default to false.
}