我的CodeIgniter应用程序使用会话库并将数据保存到DB。
我遇到了一些问题,在某个ajax调用之后创建空白会话。
经过调查,似乎触发了两个同时进行的函数调用,需要进行会话验证。一个会失败,另一个会没事。
我能够通过不让它们同时启动来解决此问题。但是我仍然不明白为什么它会失败。它与更新用户cookie的一次调用和使第二次调用无效的调用有关吗?还是在读取数据库时以某种方式死亡?
我稍微看了一下Session核心类,却没有找到任何线索。
如果有人遇到相同的问题,我将不胜感激如何调试或引起问题的任何建议。
谢谢!
编辑:
我最初说的是408状态返回。那是无关的案件。
这是并行触发MyVar.refresh()的函数:
function (event)
{
var self$ = this.a$;
var uid = this.b$.val();
var tid = this.c$.val();
var jqxhr = $.post('/controller1/index',{'uid':uid,'tid':tid,'action':true},function(re)
{
if(re.message != 'success')
{
MyVar.alert('<span class="msg_error sprite"></span>' + re.error);
MyVar.refresh();
}
},'json');
MyVar.refresh();
return stopDefault(event);
};
可能的解决方案:
找到了这个:http : //codeigniter.com/forums/viewthread/102456/
显然,它不能与Ajax配合使用。一种解决方案是如果是ajax调用则禁止会话更新。唯一的问题是我们的网站主要是用Ajax构建的。
另外,只需将sess_time_to_update降低到非常频繁的水平,而ajax可以正常运行。浏览器也进行了刷新,并且没有超时。不确定为什么ajax调用后会话ID是否已更改并且浏览器cookie从未更新过。
慕的地6264312
偶然的你
相关分类