我有一个控制器和一个如下所示的视图,它可以在一段时间内完美运行,但是在向服务器发出一些请求后(即每隔一秒钟重新加载),它将在此行上失败
if (!$this->tank_auth->is_logged_in())
无缘无故,我不知道天气是拥挤还是......
当我尝试在firebug中调试客户端代码并在此行上保留一个断点时
$('#buy_reload').load('buy/reload'); //And press f8 every time
它有点像魅力是什么问题?加载?
Z控制器
class Buy extends CI_Controller
{
function __construct()
{
parent::__construct();
$this->load->helper('url');
$this->load->library('tank_auth');
$this->load->model(array('tank_auth/users','players','cash','inventory','items','shopping_cart','purchases','processing'));
}
function reload()
{
if (!$this->tank_auth->is_logged_in()) {
redirect('/auth/login/');
} else {
//do those stuffs
}
}
}
Z视图中的脚本
<script>
setInterval(function() {
$('#buy_reload').load('buy/reload');
}, 1 * 1000);
</script>
答案 0 :(得分:2)
我在Tank Auth和CodeIgniter 2.1上遇到了类似的问题。 会话和Ajax调用似乎存在问题。 以下链接将为您提供帮助
http://ellislab.com/forums/viewthread/199753/#962141
http://ellislab.com/forums/viewthread/203821/#951378
问题出在会话类的sess_update函数中,它在X秒后生成一个新的session_id。每个页面都有一个session_id,如果session_id在进行ajax调用之前到期,则该调用将失败。