AJAX调用在Symfony中创建新会话

时间:2016-03-13 10:43:18

标签: php ajax symfony session

我有一个Symfony应用程序。我正在使用request->getSession()->set(key, value)在会话中保存一些信息。

如果我通过客户端AJAX调用调用一个动作,我就无法访问我之前保存的会话变量。看起来AJAX调用会为我生成一个全新的会话(新会话ID,与主流中的会话ID相比)。

我在config.yml中有以下设置:

session:         
    cookie_lifetime:         3600
    cookie_httponly:         false

奇怪的是,在localhost上我通过AJAX得到了相同的sessionId(所以在localhost上一切正常)。我在网络服务器上部署后,问题就开始出现了。

请指教。感谢

1 个答案:

答案 0 :(得分:1)

如果你通过Ajax从控制器调用一个动作?你指的是服务器端Ajax调用?这有点奇怪。让我们说你会这样做,服务器没有相同的会话,但它会创建一个与用户会话无关的新会话。

认为你应该使用Controller forward方法。见http://symfony.com/doc/current/book/controller.html#forwarding-to-another-controller

或者移动您要拨打自己的课程并为其配置服务的方法:http://symfony.com/doc/current/components/dependency_injection/configurators.html

相关问题