使用WAMP和Ajax查询的奇怪行为

时间:2013-09-18 15:38:27

标签: php jquery ajax wampserver

我目前正在尝试运行一个适用于我的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>');
                }
            }
        });

当我在LAMP上尝试时,它运行正常:我已重定向。使用WAMP,我不知道为什么,但我有以下错误消息(由&#34生成;否则&#34;):

  

成功

我尝试过typeof(数据),我有&#34; string&#34;结果。因此,Ajax查询返回的值是&#34;成功&#34;字符串,为什么&#34;如果&#34;被忽略了?

1 个答案:

答案 0 :(得分:1)

试试这个:

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() {
});

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