我有一个Symfony应用程序。我正在使用request->getSession()->set(key, value)
在会话中保存一些信息。
如果我通过客户端AJAX调用调用一个动作,我就无法访问我之前保存的会话变量。看起来AJAX调用会为我生成一个全新的会话(新会话ID,与主流中的会话ID相比)。
我在config.yml
中有以下设置:
session:
cookie_lifetime: 3600
cookie_httponly: false
奇怪的是,在localhost上我通过AJAX得到了相同的sessionId(所以在localhost上一切正常)。我在网络服务器上部署后,问题就开始出现了。
请指教。感谢
答案 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