jQuery 'If' 语句字符串比较不起作用

标签 jquery ajax string comparison if-statement

我很难尝试做一些非常简单的事情。代码如下:

        if(data == 'success') {

            alert('foo');

        } else {

            alert(data);

        }

我已经简化了它,但这就是理解正在发生的事情所必需的。变量“data”是 AJAX 调用的结果(如果有什么区别的话)。问题是它总是转到“else”语句并警告“成功”,而如果它转到“else”则不应该这样。知道这里发生了什么吗?

编辑:这是 jQuery 中的完整 AJAX 代码:

$.post("/manage_sites.php", {before:before, edit:after}, function(data){

        if(data == success) {

            alert('blah');

        } else {
            alert(data);
        }
    });

然后在 PHP 响应中:

...code....
$update = mysql_query("UPDATE users SET feeds = '$afterFeed' WHERE username = '$name'") or     die("Query Failed");

if($update) {

    echo  'success';  //this is the 'string' that is being given to 'data'
}

最佳答案

您可以使用 $.trim() 在客户端修复它。像这样:

if($.trim(data) == 'success') {
或者,更好的方法是删除来自服务器端的换行符,可能是 PHP 中某个位置的错误换行符,请检查 <? ?> 之前或之后 block ,这是它们最常出现的地方。

或者,输出内容后退出,如下所示:

if($update) {
  echo 'success';
  exit();
}

关于jQuery 'If' 语句字符串比较不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3233422/

相关文章:

jquery - 不能按 ID 选择对象,只能用 jQuery 按类选择对象?

javascript - 避免 URL 编码

javascript - 如何解决Javascript中未定义的数组属性?

javascript - 等待 Ajax 调用 DOM 操作完成

javascript - 与 Codeigniter 和 AJAX 类似的系统

javascript - 使用 Cloudflare 获取真实的国家/地区

javascript - 重叠过渡

c - 从 fgets() 输入中删除尾随换行符

algorithm - 修剪 <= 2 个字符的字符串

python - 检查字符串是否为 float