gpt4 book ai didi

php - 有没有办法禁用 symfony 2 中某些 Controller 的 session ?

转载 作者:行者123 更新时间:2023-12-03 21:36:51 24 4
gpt4 key购买 nike

目前我正在尝试在操作开始时关闭 session ,因为这是一个 AJAX 操作,根本不需要任何 session 。

protected function _closeSession(Request $request)
{
if($request->hasSession()){
$session = $request->getSession();
$session->save();
}
}

public function listAction(Request $request, $mode, $id)
{
$data = [];
$this->_closeSession($request);
//perform long polling

//return json response
$response = new Response(json_encode($data));
$response->headers->set('Content-Type', 'application/json');

return $response;
}

但是我从 NativeSessionStorage 收到此错误:无法启动 session ,因为已发送 header 。

更新:

问题是我有 2 个单独的 ajax 调用,一个用于向站点添加评论,另一个长时间运行的脚本通过称为长轮询的技巧在页面上显示这些评论。但是有一个问题,当第二个脚本阻塞第一个脚本时,因为默认情况下两者都使用 session 。这里描述了这个问题 - Long running background PHP script blocks other PHP pages until it is finished .我找到了一个解决方案来手动调用 session_write_close 而不是 $session->save() 在 _closeSession 中。但是还有其他更像 Symfony 风格的方法来做到这一点吗?

最佳答案

如果您不需要对这些 Controller 进行身份验证,也许这应该是一种解决方法。
security.yml (SF 3.4):

firewalls:
# disables session creation for assets controller
assets:
pattern: ^/assets
stateless: true
security: false

关于php - 有没有办法禁用 symfony 2 中某些 Controller 的 session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34561634/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com