Zend 2:如何在AJAX请求中设置会话

时间:2016-08-30 11:10:48

标签: ajax zend-framework2

Normaly我在控制器的动作中设置会话没有任何问题。我做了以下事情:

    public function testAction()
    {
        $container = new Container('example');
        $container->test = 'example';
        ...
    }

它有效。但是,如果它的AJAX调用它不起作用......

public function ajaxAction()
{
        ...
        if ($this->getRequest()->isXmlHttpRequest()) {
            // code that works fine

            // session code that doesn't work at all...
            $container = new Container('example');
            var_dump($container->test); // <-- in second request it should dump 'example' string, but it returns null every time
            $container->test = 'example';
        }

        return new JsonModel(array('success' => $result));
}

我用以下方法尝试了上面的代码:

$container->getManager()->start()
$container->getManager()->isValid()
$container->getManager()->getStorage()->isLocked()
$container->getManager()->rememberMe(30*60*60*24);
$container->setExpirationSeconds(30*60*60*24);
$container->getManager()->getConfig()->setCookieSecure(false);
$container->getManager()->getConfig()->setCookieHttpOnly(false);
$container->getManager()->writeClose();

但它不起作用。 AJAX请求是通过标准的jQuery方法运行的,所以我不认为值得发布它。我非常确定AJAX调用工作正常,因为除了这个问题我没有任何问题。

我知道如何才能在AJAX中设置会话变量? Zend更改/阻止它与普通HTTP请求一起工作,但不适用于AJAX。

0 个答案:

没有答案