如何使用角度js重定向到CodeIgniter控制器

时间:2015-06-19 11:28:12

标签: angularjs codeigniter

我正在使用CodeIgniter控制器功能。 (实施例)

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Me extends CI_Controller {
    public function __construct()
       {
            parent::__construct();
            if (is_logged_in()){if (is_admin()) { redirect('login');  }}
            else { redirect('login');}  
       }
    public function change_password()
    {
        $id=$this->session->userdata['user_data']['id'];
        $data = json_decode(file_get_contents("php://input"));

        $my_data=array(
            'pass'=>$data->pass,
            'new_pass'=>$data->new_pass,
            );
        $result=$this->vanesh_model->change_pass($id,$my_data);
        if($result==1)
        {
            $arr = array('msg' => "Password changed successfuly.", 'error' => '');
            $jsn = json_encode($arr);
            print_r($jsn);
        }
        else if($result==2)
        {
            $arr = array('msg' => "", 'error' => 'Old Password is Invalid');
            $jsn = json_encode($arr);
            print_r($jsn);
        }
        else if($result==3)
        {
            $arr = array('msg' => "", 'error' => 'Sorry, Password change failed');
            $jsn = json_encode($arr);
            print_r($jsn);
        }
    } 
}
?>

我害怕使用角度会话服务,所以我想维持只有CI的会话。我在我的应用程序中所做的只是在他登录时添加,更新,删除。我使用的是存储在会话中的信息。考虑一下这种情况,假设我已经登录并做了一些事情:我使用浏览器工具销毁会话。现在我继续申请(执行以下操作:更改密码)。我已经/已经保留了错误消息,成功消息,确定。如果会话关闭,则会显示错误消息。但是,我想重定向到LOGIN页面(页面刷新),而不是错误消息。 注意:对于CI登录控制器,我没有使用角度js。我在登录后才使用angularjs。

  • 如果通过打开新标签我会销毁会话,并返回应用程序的标签:我能够执行任务(可能有错误)。如果会话关闭,我会在浏览器的控制台中看到这一点:http://localhost/ums/login 这是因为CI构造函数(请查看代码)。

2 个答案:

答案 0 :(得分:0)

你应该尽可能地分离角度和CI,因为它们都有视图控制器,它会造成混乱。相反,你应该在一个单独的文件夹中使用CI,例如,在它之后,你需要从CI获得的任何内容都应该从带有ajax调用的angular中获取。

我不久前制作了一个小型webapp,这似乎是组织代码的最佳方式。 从那时起几乎没有对角度进行更新,所以如果有更好的方法请告诉我

答案 1 :(得分:0)

<强>解决。 使用javascript函数。 每次按http请求检查会话。如果响应为“1”。表示重定向登录为:

/* function for checking logged-in and role */
function check_session()
{
    $.get("servercontroller/check_session", function(data, status){
         if(data=="1") /* error 1 => un-athorized user */
        {
            window.location.href="/login-page-url";
        }
        });
}