Php 如果会话不存在,Codeigniter ajax函数不会重定向到登录页面
我正在为我的web应用程序使用codeigniter,它具有用户注册功能。我还在大多数地方使用ajax加载页面。问题是,如果通过ajax调用某个函数来加载页面,而会话不存在,则它不会重定向到登录页面。但当我们通过浏览器访问同一个URL时,它就起作用了(它正在重定向到登录页面)。我应该如何解决这个问题 这是检查我们正在使用的会话的代码Php 如果会话不存在,Codeigniter ajax函数不会重定向到登录页面,php,ajax,codeigniter,Php,Ajax,Codeigniter,我正在为我的web应用程序使用codeigniter,它具有用户注册功能。我还在大多数地方使用ajax加载页面。问题是,如果通过ajax调用某个函数来加载页面,而会话不存在,则它不会重定向到登录页面。但当我们通过浏览器访问同一个URL时,它就起作用了(它正在重定向到登录页面)。我应该如何解决这个问题 这是检查我们正在使用的会话的代码 $userid=$this->phpsession->get('userid'); if(!($userid)) {
$userid=$this->phpsession->get('userid');
if(!($userid))
{
redirect('home','refresh');
}
在控制器中,检测是否是ajax请求:
if($this->input->is_ajax_request())
{
$userid=$this->phpsession->get('userid');
if(!($this->usermodel->is_user($userid)))
{
echo "1";
}
}
在ajax中,检测响应并重定向到登录页面:
$.post('index.php/login', function(data){
if(data == "1")
{
document.location.href = <?php echo site_url("home"); ?>;
}
});
$.post('index.php/login',函数(数据){
如果(数据==“1”)
{
document.location.href=;
}
});
请发布ajax代码,登录controller.ajax将不会执行重定向(“主页”、“刷新”);谢谢你的回答,亚当。我来看看,这不是个好主意。如果用户禁用javascript,则不会重定向它们。@Mike,我建议将ajax代码添加到控制器中,而不是删除旧代码。但如果我包含上面建议的代码,则会显示此错误致命错误:调用未定义的方法CI\u Input::is\u ajax\u request()在/var/www/panhive/system/application/controllers/stores.php中,函数位于codeigniter 2中。请参阅: