我有一个登录 Controller ,它应该在用户有效时重定向到我的索引页面。重定向有效,但在索引页面上,url 仍然是验证方法的 url:login/validate_login/。如果我单击索引页面上的链接,然后尝试返回浏览器历史记录,浏览器会将我指向验证方法而不是索引页面。
我该如何解决这个问题?
我尝试过将重定向与刷新和位置一起使用,但都没有成功。
我怀疑这是jQuery Mobile的ajax调用的问题,但我不确定。
感谢任何帮助。 亲切的问候
注意:我会在索引页上张贴 url 的图片,但不允许我这样做,因为我是新用户。
我的验证方法:
function validate_login($controller='',$method='') {
$this->load->library('form_validation');
$this->load->model('workout_model');
$this->form_validation->set_rules('ex_password','Koden','trim|required|min_length[4]|max_length[4]|callback_pw_check');
if($this->form_validation->run() == FALSE) {
$this->index();
} else {
if($query = $this->workout_model->validate()) {
$data = array(
'is_logged_in' => true,
'user_id' => $query->id,
'current_exercise' => '1'
);
$this->session->set_userdata($data);
if($controller=='' || $method=='') {
redirect("workout");
} else {
redirect($controller."/".$method);
}
} else {
$this->index();
}
}
}
最佳答案
正确更新 URL 似乎需要两件事:使用 redirect(...) 而不是方法调用并禁用 jQuery Mobile ajax 调用。有两种方法:向最初指向您的方法的链接添加属性,
<a href='.../validate_login/...' data-ajax='false'>...</a>
或者,通过编辑设置(未测试)全局禁用 ajax 调用。
关于php - Codeigniter 重定向不使用 jQuery Mobile 更新 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12864013/