cakephp多个ajax请求会话问题

时间:2014-02-02 16:29:39

标签: ajax session cakephp

我在Cakephp中处理会话时遇到问题。我提出两个请求。第一个请求提交表单,发生了很多事情。第二个请求是一个想要了解第一个请求状态的ajax请求。 因此,我将状态写入会话变量。我谷歌很多,我知道我可能会得到每个ajax-status-request的有效回报。问题是,会话中的变量始终是之前请求的最后一个状态。这是一个例子:

第一次提交

Ajax-Status-Request 1:status 1

Ajax-Status-Request 2:status 1

...

Ajax-Status-Request 10:状态1

结束(状态应为10)

第二次提交

Ajax-Status-Request 1:status 10

Ajax-Status-Request 2:status 10

...

Ajax-Status-Request 10:状态10

结束(状态应为10)

在cakephp中我尝试配置'php'和'cake'。但是,如果我使用此配置,则每个ajax-request都在等待提交完成。现在我尝试了“缓存”。

    Configure::write('Session', array(
    'defaults' => 'cache'
));

表单提交的控制器

$this->Session->write('request_status', "start");
sleep(5);
for($i =1;$i<500000;$i++){
    if($i == 1000){
        $this->Session->write('request_status', $this->Session->read('request_status').$i);
    }
    if($i == 7000){
        $this->Session->write('request_status', $this->Session->read('request_status').$i);
    }
}
$this->Session->write('request_status', "ende");

Ajax的状态请求

public function checkRequestStatus(){
    $this->respond($this->Session->read('request_status'), true);
}

Ajax的代码

$.ajax({
            type: "POST",
            url:"<?php echo Router::url(array('controller'=>'AjaxRequestStatus','action'=> 'checkRequestStatus', 'plugin' => ''));?>",
            async: false,
            success: function(data){
                $('#popup_content').append(data+ "<br />");
            }
         });

好的,我希望其他人也可以创建多个请求,并希望了解第一个请求的状态。我的错是什么?这是配置问题吗?

格尔茨

V

0 个答案:

没有答案