检查" true" JavaScript形式的Ajax响应

时间:2013-04-04 18:31:16

标签: javascript ajax

响应Ajax请求我的php文件echo trueecho false。在我的JavaScript文件中,我想根据响应调用两个函数之一。我显示了xmlhttp.responseText的内容,发现它是1,所以我尝试了

if(xmlhttp.responseText == 1)
{
  funcA()
}
else
{
  funcB()
}

if(xmlhttp.responseText === 1)
{
  funcA()
}
else
{
  funcB()
}

但始终会调用funcB()。如果我想在响应为true时调用funcA(),我应该在JavaScript if语句中检查什么?

好的,所以一个答案说要将整数转换为字符串,另一个人说要将字符串解析为整数。我试过并且都工作,一种方法比另一种更快?

有些时候我坚信不应该低估问题,这就是其中之一。如果我尝试在PHP页面中输出内容,那么我没有看到的一个短暂的结果(例如echo()var_dump())然后此JavaScript将始终评估为true。

2 个答案:

答案 0 :(得分:2)

responseText成为字符串时,您正在进行完全匹配。您可以将responseText强制转换为整数(通过parseInt())或进行宽松检查(将===替换为==)。这两种解决方案都可以解决问题。

答案 1 :(得分:1)

如果php回显一个布尔值,你应该能够在这样的条件下检查响应:

if (xmlhttp.responseText) {
    funcA();
else {
    funcB();
}

条件会自动转换为布尔值。