重定向仍然无效(在先前的问题上更新)

时间:2011-01-11 04:35:30

标签: php jquery ajax

所以早些时候我问了这个问题:JQuery Login Redirect. Code Included

php文件正在发送以下内容:

$return['error'] = false;
$return['msg'] = 'You have successfully logged in!!';

我已经尝试了所有的建议,引用了php和ajax结尾的错误,2等于而不是3,我也尝试过DNE,这应该和else语句一样:

$(document).ready(function(){
$('#submit').click(function() {
$('#waiting').show(500);
$('#empty').show(500);
$('#reg').hide(0);
$('#message').hide(0);

$.ajax({
    type : 'POST',
    url : 'logina.php',
    dataType : 'json',
    data: {
        type : $('#typeof').val(),
        login : $('#login').val(),
        pass : $('#pass').val(),


    },
    success : function(data){
        $('#waiting').hide(500);
        $('#empty').show(500);
        $('#message').removeClass().addClass((data.error === true) ? 'error' : 'success')
            .text(data.msg).show(500)
        if(data.error != true) 
            window.location.replace("http://blahblah.com/usercp.php");      
        if (data.error === true)
            $('#reg').show(500);
            $('#empty').hide()
    },

    error : function(XMLHttpRequest, textStatus, errorThrown) {
        $('#waiting').hide(500);
        $('#message').removeClass().addClass('error')
            .text("There was an Error. Please try again.").show(500);
        $('#reg').show(500);
        $('#empty').hide();
                            Recaptcha.reload();

    }
});

return false;

});

它仍然无法运作。如果登录成功并且错误返回false,有关如何进行重定向的任何想法?另外,在我问的时候,我可以在.delay(3000)的末尾添加window.location.replace("http://blahblah.com/usercp.php") 3吗?

2 个答案:

答案 0 :(得分:1)

您的jQuery代码指定dataType是JSON,因此您的PHP应该返回:

{
    "error": false,
    "msg": "You have successfully logged in!!"
} 

答案 1 :(得分:1)

为了考虑所有选项,你可以在php脚本中调用echo json_encode($return);吗?

此外,对于延迟,我会说将代码置于setTimeout()调用中以在3000毫秒内运行。