javascript ajax if语句错误地返回false
在成功连接并使用ajax从php接收数据之后,我做了if语句,它给出false,我不知道为什么 javascript:javascript ajax if语句错误地返回false,javascript,php,ajax,Javascript,Php,Ajax,在成功连接并使用ajax从php接收数据之后,我做了if语句,它给出false,我不知道为什么 javascript: var xhr = new XMLHttpRequest(); xhr.open('POST', action, true); xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest'); xhr.onreadystatechange = function (){ if (xhr.readyState == 4 &
var xhr = new XMLHttpRequest();
xhr.open('POST', action, true);
xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
xhr.onreadystatechange = function (){
if (xhr.readyState == 4 && xhr.status == 200){
var result = xhr.responseText;
console.log(result); //gives correctly invalid_login_data
if (result == 'invalid_login_data'){
console.log("true");
}
else{
console.log("false");
}
}
php:
这是真的
原因是什么?没有提供更多信息,因此我们只能提供以下解决方案: 用以下内容替换if/else块:
if (result.search('invalid_login_data')>=0){
console.log("true");
}
else{
console.log("false");
}
您没有提供足够的信息来重现问题。我猜问题是,
result
除了要比较的文本外,还包含空格。请尝试console.log(result+“)
-如果空格后会添加一个点(如@Quentin所建议的),那么您必须对其进行修剪,如果提供的示例与您添加的方式正确,一切都会很好,然后,前面的空格似乎是js字符串比较:pconsole.log(result+”)给出了“invalid_login_data”。这是真的,但我不知道为什么我的代码会给出false@gileneusz它给出了true,因为它在字符串上搜索,如果找到,它将返回true。您的问题是空白
您可能是对的,但是如果我在确切的位置给出“”,并且代码中没有空白,我不知道源代码在哪里:)
<?php
$result_php = "invalid_login_data";
echo $result_php;
?>
<?php
$result_php = 3;
echo $result_php;
?>
if (result == 3){
if (result.search('invalid_login_data')>=0){
console.log("true");
}
else{
console.log("false");
}