Javascript $.post返回正确的数据,并在开头添加一个换行符

Javascript $.post返回正确的数据,并在开头添加一个换行符,javascript,php,jquery,ajax,validation,Javascript,Php,Jquery,Ajax,Validation,我在login.php上有一个简单的ajax调用,它执行基本的验证 如果用户键入有效用户名,则checkuser.php通过echo语句返回“valid username” 现在,当我从post请求中警告数据元素时,它显示“validusername”。但是当使用“validusername”测试相等性时,它会转到if语句的false部分,并发出“fail”警报 checkuser.php include_once 'functions.php'; echo "Valid username";

我在login.php上有一个简单的ajax调用,它执行基本的验证

如果用户键入有效用户名,则checkuser.php通过echo语句返回“valid username”

现在,当我从post请求中警告数据元素时,它显示“validusername”。但是当使用“validusername”测试相等性时,它会转到if语句的false部分,并发出“fail”警报

checkuser.php

include_once 'functions.php';
echo "Valid username";
login.php最小值

<html>
<head>
<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
<script>
$(document).ready(function() {
        $.post('checkuser.php', {user: 'validUser'},function(data) {
            $.trim(data);
            alert(data);
            if (data=='Valid username')
                alert('success');
            else
                alert('fail');
        });
});
</script>
</head>
</html>
我使用了jQuery trim函数,但没有用。知道为什么会这样吗


因此,事实证明include语句在$.post调用中预先添加了一个\n,因为文件末尾有空行。通过删除functions.php文件中?>closing标记后的空行,问题得以解决

如果您使用的是google chrome,则在使用开发者工具时,可以在“网络”选项卡下查看响应

但是,我建议您使用result参数检查调用是否成功

<html>
<head>
<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
<script>
$(document).ready(function() {
        $.post('checkuser.php', {user: 'validUser'},function(data, result) {            
            alert(data);
            if(result=='success')
                alert('success');
            else
                alert('fail');
        });
});
</script>
</head>
</html>

附言:你的原始代码在我这边起作用。我唯一添加的是checkuser.php文件中的php标记

至于php代码返回数据的原因,我们需要查看代码

然而,关于为什么$.trim不起作用,值得注意的是,jQuery$.trim不会删除换行符。相反,您可以使用Regex。这将删除所有换行符:

textvar=textvar.replace/\r\n |\n |\r/gm


尽管上述Chris的实现似乎是您寻找的更好的选择。

您的PHP脚本末尾可能有空行。

在if语句之前,通过说console.logdata,将输出记录到控制台中,进行一些调试;并找出它包含的属性。然后根据prop值进行验证似乎数据在开始时带有\n字符。因此,请修复PHP,这样您就不会发送代码,因为您的代码在我这边有效,我添加的唯一内容是checkuser.PHP中的PHP标记