используйте эту встроенную функцию, чтобы проверить, является ли вызов ajax или нет, а затем предпринять необходимые действия.
if($this->input->is_ajax_request()){
//action...
}else
{
$this->session->sess_destroy();
}
вы можете найти ответ здесь CodeIgniter Session Disappear Bug?
ваш ответ также имеющийся здесь Codeigniter session bugging out with ajax calls , который:
class MY_Session extends CI_Session {
public function sess_update()
{
$CI = get_instance();
if (! $CI->input->is_ajax_request())
{
parent::sess_update();
}
}
}