【问题标题】:codeigniter redirect() not working代码点火器重定向()不起作用
【发布时间】:2014-04-15 19:25:57
【问题描述】:

从 /admin/login,我正在向 /admin/doLogin 发送 jquery 帖子

public function doLogin()
{
    $this->load->model('admin_model');

    $email = $this->input->post('email');
    $password = $this->input->post('password');
    $data['user'] = $this->admin_model->do_login($email, $password);
    if($data['user'] == true)
    {
        redirect(base_url().'admin/');
    }
    else
    {
        redirect(base_url().'admin/login');
    }
}

现在,当 $data['user'] == true 时,我会留在管理/登录页面。 在我的网络中,我看到 /admin 已加载,但我的页面没有刷新。

我尝试使用 codigniter 重定向功能,我还尝试了 $this->index,我还尝试回显 javascript window.location.href,但没有任何效果。我总是留在那个登录页面。尽管我总是看到它们被加载到我的开发者工具网络中。 有人有想法吗?是因为我在本地主机上吗?我已经不知道了..

编辑:

$('#btn-login').click(function(){
    var email = $('#login-username').val();
    var password = $('#login-password').val();

    $.post(
        '/index.php/admin/doLogin/',
         { email: email, password: password },
         function(data) {
         }
    );
});

【问题讨论】:

    标签: codeigniter redirect


    【解决方案1】:

    正如 learn 所说,您不能在 Ajax 模式下使用重定向。你的 PHP 脚本是通过 Ajax 调用的,你不能使用 PHP 重定向。

    你必须使用 Javascript 回调:

    public function doLogin()
    {
        $this->load->model('admin_model');
    
        $email = $this->input->post('email');
        $password = $this->input->post('password');
        $data['user'] = $this->admin_model->do_login($email, $password);
    
        echo ($data['user'] ? 1 : 0);
    }
    

    在你的 JS 中:

    $.post(
        '/index.php/admin/doLogin/',
         { email: email, password: password },
         function(data) {
            var redirect = data == 1 ? 'admin' : 'admin/login';
            window.location.href = '<?php echo base_url() ?>'+ redirect;
         }
    );
    

    如果你使用 PHP 重定向,为什么还要使用 Ajax?

    【讨论】:

    • 你是对的,做ajax然后重定向是有道理的。我现在只是做一个普通的表单提交。
    【解决方案2】:

    您不需要base_url()。你应该只使用redirect('your_controller/controller_function')。此外,您不会在 AJAX 请求上被 PHP 重定向,您必须在客户端执行此操作。

    【讨论】:

    • 我也试过了,但没有用。正如我所说,它似乎加载正确,但我的浏览器卡在登录页面上。
    • 您可以编辑您的帖子以显示您的 JavaScript 吗?
    猜你喜欢
    • 2012-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-04
    • 1970-01-01
    • 2013-11-16
    • 2018-09-14
    • 1970-01-01
    相关资源
    最近更新 更多