首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Codeigniter和jQuery mobile处理重定向?

使用Codeigniter和jQuery mobile处理重定向?
EN

Stack Overflow用户
提问于 2013-05-16 23:27:48
回答 2查看 1.1K关注 0票数 0

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

其中涉及到相当多的代码,因此我将尽我所能对其进行描述:

假设变量$this->session->flashdata('prev_page')page1

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

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

代码语言:javascript
复制
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。我该如何解决这个问题?如果你需要更多的信息,请告诉我。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-17 01:13:47

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

票数 1
EN

Stack Overflow用户

发布于 2013-05-17 00:07:51

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

如果这就是情况,那么这将会产生魔力:

代码语言:javascript
复制
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'));
 }
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16591584

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档