当通过AJAX调用其中一个方法时,Codeigniter无法使用php代码重定向

时间:2015-07-24 04:47:01

标签: ajax codeigniter

我需要知道为什么在没有使用ajax调用的会话时它无法重定向到登录页面。

*这是我的控制器: 我把我的图书馆和#34; MY_Login"在构造函数

class Dashboard extends CI_Controller {

    public function __construct()
    {
        parent::__construct();
        $this->load->library("MY_Login");
    }

    public function index()
    {
       $this->load->view('admin/dashboard_view');
    }

    public function test(){
        echo '^^';
    }
}

*这是我的图书馆: 这是为了检查会议

class MY_Login extends CI_Controller{

    function __construct() {
        parent::__construct();

        // call with constructor.
        $this->isLogin();
    }

    function isLogin() {

        // if there is no session existed
        if(!$this->session->userdata('USR_NM')){

            // redirect to login page
            redirect('/login', 'refresh');
        }
    }
}

*的Ajax: 当没有会话时,我尝试访问功能" test()"在我的控制器里面" dashbaord"使用Jquery Ajax调用。但它似乎无法重新登录我的登录页面。

任何帮助将不胜感激:)

2 个答案:

答案 0 :(得分:0)

您正在尝试重定向您的ajax请求。这不是您想要的,您想要将呈现的页面重定向到客户端。

您必须向ajax调用发送消息,告诉它重定向页面-via-javascript。

仅仅因为您重定向ajax请求对已经呈现给客户端的页面没有任何意义。

答案 1 :(得分:0)

页面不会重定向,因为客户端的页面并不知道您通过ajax请求收到的响应...检查您的控制台,您将知道最新情况。 你可以做的是如果没有设置会话,那么发送' false'作为回应然后你可以做类似的事情:

if(!response){
    location.href='link to which you want the page to redirect'.
}