JavaScript / AJAX / Servlet比较字符串

时间:2013-12-02 00:57:25

标签: javascript ajax servlets

我正在尝试比较从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语句......

2 个答案:

答案 0 :(得分:0)

println通常在字符串的末尾添加一个换行符(println中的“ln”代表“line”),因此服务器返回的字符串值实际为{{1 (或类似的东西),它不等于"print\n"

如果可用,请使用

"pass"

不附加换行符。

比较之前

trim the response

答案 1 :(得分:0)

而不是原始函数Return(未明确返回)

function Return() { // Why not checkPassword?
  if (ajax.responseText === "pass") { // exactly equal
    document.getElementById("pass").innerHTML = "This is valid number!";
  }
}

尝试这样的事情(例如,大概应该是truefalse,所以明确地这样做)...

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.
}