codeigniter重定向()不工作

codeigniter重定向()不工作,codeigniter,redirect,Codeigniter,Redirect,从/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->a

从/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/login页面。 在我的网络中,我看到/admin被加载,但我的页面没有刷新到它

我用codigniter重定向函数尝试了它,我还尝试了$this->index,我还尝试了回显javascript window.location.href,但没有任何效果。我总是停留在登录页面上。尽管我总是看到它们被加载到我的developerTool网络中。 有人有主意吗?是因为我在本地主机上吗?我再也不知道了

编辑:


您不需要
base\u url()
。您应该只使用
重定向('your\u controller/controller\u function')
。而且,在AJAX请求中,PHP不会重定向到您,您必须在客户端执行此操作。

您不需要
base\u url()
。您应该只使用
重定向('your\u controller/controller\u function')
。另外,在AJAX请求中,您不会被PHP重定向,您必须在客户端执行此操作。

正如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;
     }
);
$.post(
“/index.php/admin/doLogin/”,
{电子邮件:电子邮件,密码:密码},
功能(数据){
var redirect=data==1?'admin':'admin/login';
window.location.href=''+重定向;
}
);

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

正如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;
     }
);
$.post(
“/index.php/admin/doLogin/”,
{电子邮件:电子邮件,密码:密码},
功能(数据){
var redirect=data==1?'admin':'admin/login';
window.location.href=''+重定向;
}
);

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

我也尝试过,但没有成功。正如我所说,它似乎加载正确,但我的浏览器被卡在登录页面上。你能编辑你的帖子以显示你的javascript吗?我也尝试过,但没有成功。正如我所说,它似乎加载正确,但我的浏览器被卡在登录页面上。你能编辑你的帖子来显示你的javascript吗?你是对的,做ajax然后重定向是有意义的。我现在只是做一个普通的表单提交。你是对的,做ajax然后重定向是有意义的。我现在只是做一个普通的表格提交。