Перенаправление Jquery не сохраняет сеанс codeigniter - PullRequest
0 голосов
/ 24 августа 2011

У меня есть страница регистрации, на которой через ajax-запрос я хочу перенаправить пользователя на страницу входа. Но этот конкретный ajax-запрос выполняет перенаправление, но не передает сеанс после запроса POST

 var dataString = 'name='+ name + '&email=' + email1 + '&password=' + password1;
                       //alert (dataString);return false;
                       $.ajax({
                           type: "POST",
                           url: "http://localhost/ci/index.php/login/add/",
                           data: dataString,
                           success: function() {
                            window.location.href = "http://localhost/ci/dashboard";
                                                }
                       });

Функция login / add принимает значения через запрос POST, который затем помещает эти значения в сессию и выполняет перенаправление. То же самое происходит совершенно без ajax-запроса в простом php / ci. Но, не происходит через ajax-запрос.

Вот код php, если он помогает

    if ($this->input->post("add") == "Sign up") {
        $data_array = array(); //this array contains post data
        $output = $this->user_model->add_new($data_array);
        if($output == TRUE){
                $this->session->set_userdata('logged_in', '1'); 
        }

        $data = array(
                    'name' => form_error('name'), 
        'email' => form_error('email'), 
        'password' => form_error('password')    
        );
        echo json_encode($data);

}

1 Ответ

1 голос
/ 25 августа 2011

The login/add function is taking the values via POST request which then puts these value in session and does a redirect. The same thing is happening perfectly without a ajax request in plain php/CI. But, not happening via ajax request.

Это потому, что ранее вы выполняете запрос synchronous, в то время как с jQuery ajax вы выполняете запрос asynchronous (это означает, что ваш javascript может игнорировать некоторую часть вашего скрипта PHP).Попробуйте добавить параметр async в ваш ajax и установить его на false

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...