CakePHP中的并发Ajax调用导致会话丢失

时间:2014-04-18 10:33:34

标签: php ajax session cakephp

我正在使用CakePHP 2.x并实现了一个AJAX文件上传器(lpology.com/code/ajaxuploader/)

它工作正常,除非我在屏幕上同时有多个实例上传文件。如果我一个接一个地上传它可以正常工作,但当我一次做多个时,其中一个工作,另一个在通话的服务器端出现无效的会话问题。

据我所知和Google告诉我的情况,似乎我的会话被锁定在第一个AJAX呼叫上,然后第二个出现并且无法进行身份验证,因此它出错了。

我尝试过使用人们尝试过的所有不同会话选项但无济于事,包括数据库会话,memcached等。

不知道从哪里开始为了使并发AJAX请求上传文件的工作原理?

编辑#1:

在每个页面请求中,我注意到以下内容位于响应标头中:

Set-Cookie:CAKEPHP=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; path=/
Set-Cookie:CAKEPHP=0rlaq85cf0k16o8d1kki345g34; expires=Sun, 20-Apr-2014 04:33:32 GMT; path=/; HttpOnly

看起来它正在删除每个请求的CAKEPHP会话cookie。我怎么能阻止它呢?

编辑#2:

发现它!在appController的beforeFilter()中,我通过重新登录用户来更新Auth阵列,以便它不断更新。这会导致生成新的会话ID。

0 个答案:

没有答案