0

我正在使用 jQuery mobile 和 Codeigniter & TankAuth 构建一个移动 Web 应用程序。当用户登录或注销时,他们会从 TankAuth 登录/注销控制器重定向到我选择的页面。问题是,当 ajax 导航加载相关页面时,TankAuth 控制器的 URL 保持不变。

涉及的代码相当多,所以我将尽我所能描述它:

考虑变量$this->session->flashdata('prev_page')page1

TankAuth 登录控制器第一次通过 调用auth/login,加载登录表单视图。

表单被提交到同一个控制器,然后控制器处理它并重定向到必要的页面:

if ($this->tank_auth->login(
    $this->form_validation->set_value('login'),
    $this->form_validation->set_value('password'),
    $this->form_validation->set_value('remember'),
    $data['login_by_username'],
    $data['login_by_email'])) {// success
     redirect($this->session->flashdata('prev_page'));
   }

jQuery 移动page1通过 AJAX 加载,但 URL 保持为auth/login. 我该如何解决?如果您需要更多信息,请告诉我。

4

2 回答 2

2

如果我对您的问题的理解是正确的,那么您正在使用 ajax 对移动用户进行身份验证,并为大屏幕用户使用普通重定向方法。

如果是这种情况,那么这将起到神奇的作用:

if ($this->tank_auth->login(
    $this->form_validation->set_value('login'),
    $this->form_validation->set_value('password'),
    $this->form_validation->set_value('remember'),
    $data['login_by_username'],
    $data['login_by_email']))
 {// success
    $this->load->library('user_agent');
    if($this->agent->is_mobile()) {
        echo $this->session->flashdata('prev_page');
        //Now this value 'll reach ajax when authentication is success.
        //Inside Ajax:
        //success: function(data) {
        //    validate data for checking if user is logged in or not.
        //   if(login_is_success)
        //      window.location.href = data;
        //}
    }
    else
        redirect($this->session->flashdata('prev_page'));
 }
于 2013-05-16T16:07:50.563 回答
1

我在有问题data-url="true"的开始标签中添加了表单,<form>从那里一切正常。

于 2013-05-16T17:13:47.077 回答