【问题标题】:Handling redirects with Codeigniter and jQuery mobile?使用 Codeigniter 和 jQuery mobile 处理重定向?
【发布时间】:2013-05-17 01:13:47
【问题描述】:

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

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

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

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

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

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 mobile 通过 AJAX 加载 page1,但 URL 仍为 auth/login。 我该如何解决?如果您需要更多信息,请告诉我。

【问题讨论】:

    标签: codeigniter jquery jquery-mobile tankauth


    【解决方案1】:

    如果我对您的问题的理解是正确的,那么您正在使用 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'));
     }
    

    【讨论】:

    • 不幸的是,事实并非如此。对不起,我不能更清楚。我通过向表单添加 data-ajax="false" 解决了这个问题 - 它现在使用正确的 url 重定向。
    【解决方案2】:

    我在打开有问题的<form> 标记时将data-url="true" 添加到表单中,从那里一切正常。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-29
      • 2017-04-16
      • 1970-01-01
      • 2010-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-07
      相关资源
      最近更新 更多