我目前正在尝试运行一个适用于我的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;被忽略了?
答案 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
是实现成功回调的首选方法,因为它可以在任何延迟调用时调用。