Php WAMP和Ajax查询的奇怪行为

Php WAMP和Ajax查询的奇怪行为,php,jquery,ajax,wampserver,Php,Jquery,Ajax,Wampserver,我目前正在尝试运行一个脚本,该脚本可以在我的LAMP环境中运行,但不能在WAMP环境中运行: $.ajax( { url: '<?php echo ROOT_DIR;?>/member/login-process', type: "post", data: $('form').serialize(), success: function(data)

我目前正在尝试运行一个脚本,该脚本可以在我的LAMP环境中运行,但不能在WAMP环境中运行:

$.ajax(
        {
            url: '<?php echo ROOT_DIR;?>/member/login-process',
            type: "post",
            data: $('form').serialize(),
            success: function(data)
            {
                if (data == 'success')
                {
                    setTimeout(function(){window.location.href = '<?php echo ROOT_DIR;?>/dashboard';}, 2000);
                }

                else
                {
                    $("#alert").html('<div class="alert alert-error"><i class="icon-exclamation-sign"></i> '+data+'</div>');
                }
            }
        });
$.ajax(
{
url:“/member/login process”,
类型:“post”,
数据:$('form')。序列化(),
成功:功能(数据)
{
如果(数据==“成功”)
{
setTimeout(函数(){window.location.href='/dashboard';},2000);
}
其他的
{
$(“#警报”).html(“”+数据+“”);
}
}
});
当我在灯上试的时候,它工作的很好:我被重定向了。对于WAMP,我不知道为什么,但我有以下错误消息(由“else”生成):

成功

我尝试了typeof(data),结果是“string”。因此,Ajax查询返回的值是“success”字符串,那么为什么忽略“if”呢?

试试以下方法:

var go = $.ajax({
    type: 'POST',
    url: '<?php echo ROOT_DIR;?>/member/login-process',
    data: $('form').serialize()
})
.done(function(data) {
    console.debug("DATA:");
    console.debug(data);
    if (data == 'success')
    {
        setTimeout(function(){window.location.href = '<?php echo ROOT_DIR;?>/dashboard';}, 2000);
    }
    else
    {
        $("#alert").html('<div class="alert alert-error"><i class="icon-exclamation-sign"></i> '+data+'</div>');
    }
})
.fail(function(msg) {
    alert('Error: ' + msg);
})
.always(function() {
});
var go=$.ajax({
键入:“POST”,
url:“/member/login process”,
数据:$('form')。序列化()
})
.完成(功能(数据){
调试(“数据:”);
调试(数据);
如果(数据==“成功”)
{
setTimeout(函数(){window.location.href='/dashboard';},2000);
}
其他的
{
$(“#警报”).html(“”+数据+“”);
}
})
.fail(函数(msg){
警报('错误:'+消息);
})
.always(函数(){
});
success
一直是jQuery中成功回调的传统名称,定义为ajax调用中的一个选项。但是,由于实现了
$.Deferred
和更复杂的回调,
done
是实现成功回调的首选方法,因为它可以在任何延迟回调上调用。

尝试以下方法:

var go = $.ajax({
    type: 'POST',
    url: '<?php echo ROOT_DIR;?>/member/login-process',
    data: $('form').serialize()
})
.done(function(data) {
    console.debug("DATA:");
    console.debug(data);
    if (data == 'success')
    {
        setTimeout(function(){window.location.href = '<?php echo ROOT_DIR;?>/dashboard';}, 2000);
    }
    else
    {
        $("#alert").html('<div class="alert alert-error"><i class="icon-exclamation-sign"></i> '+data+'</div>');
    }
})
.fail(function(msg) {
    alert('Error: ' + msg);
})
.always(function() {
});
var go=$.ajax({
键入:“POST”,
url:“/member/login process”,
数据:$('form')。序列化()
})
.完成(功能(数据){
调试(“数据:”);
调试(数据);
如果(数据==“成功”)
{
setTimeout(函数(){window.location.href='/dashboard';},2000);
}
其他的
{
$(“#警报”).html(“”+数据+“”);
}
})
.fail(函数(msg){
警报('错误:'+消息);
})
.always(函数(){
});

success
一直是jQuery中成功回调的传统名称,定义为ajax调用中的一个选项。但是,由于实现了
$.Deferred
和更复杂的回调,
done
是实现成功回调的首选方法,因为它可以在任何延迟回调上调用。

ROOT\u DIR等于什么?等于什么。这不是这个bug的问题。是否返回了“成功”?试试看:
如果($.trim(data)='success')
@A.Wolff Dude,你是一个米吉西亚人,它会起作用。为什么我只对WAMP而不是LAMP有这种行为?我很确定每台服务器上的两个文件并不完全相同。如果是,请发布相关的php代码(在WAMP上使用),这样我们就可以看到发生了什么,ROOT_DIR等于什么?等于什么。这不是这个bug的问题。是否返回了“成功”?试试看:
如果($.trim(data)='success')
@A.Wolff Dude,你是一个米吉西亚人,它会起作用。为什么我只对WAMP而不是LAMP有这种行为?我很确定每台服务器上的两个文件并不完全相同。如果是,请发布相关的php代码(在WAMP上使用),这样我们就可以看到这个详细答案的运行情况,但它不起作用,仍然是同一个问题。然后它很可能是php或Apache配置中的某个东西,因为它是特定于主机的。感谢这个详细答案,但它不起作用,还是同样的问题。那么它很可能是PHP或Apache配置中的某个东西,因为它是特定于主机的。