Ajax 会话丢失

2023-12-01

我将 Symfony 应用程序从 Symfony 4.0.7 升级到 Symfony 4.1,之后 AJAX 调用会丢失会话值。

我同时调用了大约 6 个 ajax 请求。第一个进展顺利,但其他人正在失去会话值。它仅在迁移到 Symfony 4.1 后发生,并且仅适用于 AJAX 调用。有任何想法吗?

编辑:它只发生在同时调用ajax的情况下。当我在调用 ajax 之间添加例如 100 毫秒的延迟时,一切正常。

edit2:它发生在4个不同的服务器上。 2 台开发服务器、1 台测试服务器和 1 台实时服务器。它们都运行在 NGINX 和 php7 上


可能的原因如下::

允许缓存使用会话的请求:

每当在请求期间启动会话时,Symfony 都会将响应转换为私有的不可缓存响应,以防止泄露私有信息。然而,在某些情况下,即使使用会话的请求也可以被缓存。

例如,可以为属于该组的所有用户缓存与某个用户组相关的信息。处理这些高级缓存场景超出了 Symfony 的范围,但可以使用 FOSHttpCacheBundle 来解决。

为了禁用默认的 Symfony 行为(使使用会话的请求不可缓存),在 Symfony 4.1 中,我们添加了 NO_AUTO_CACHE_CONTROL_HEADER 标头,您可以将其添加到响应中:

use Symfony\Component\HttpKernel\EventListener\AbstractSessionListener;
$response->headers->set(AbstractSessionListener::NO_AUTO_CACHE_CONTROL_HEADER, 'true');

弃用 Request::getSession() 的某些用法

Symfony 4.1 中不推荐在不存在会话时使用 Request::getSession() ,并且在 Symfony 5.0 中它将引发异常。解决方案是始终首先使用 Request::hasSession() 方法检查会话是否存在:

if ($request->hasSession() && ($session = $request->getSession())) {
    $session->set('some_key', 'some_value');
}

更多关于参考:Here.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ajax 会话丢失 的相关文章

  • 保存多对多关系,同步/附加不存在?

    我有以下两个多对多关系的模型 use Illuminate Database Eloquent Model class Permission extends Model The database table used by the mode
  • Laravel leftJoin 仅右表的最后一条记录

    我是 Laravel 的新手 我有两张桌子 1 产品 2 价格 products id product int p key name varchar prices id price int p key id product int
  • 如何使用 PHP 对字符串进行 rot13 处理?

    我有一个很大的 php 代码 我想手动对其进行编码和解码 我的问题是 php 代码里面有很多单引号和双引号 因此我在使用时出现错误str rot13 功能如下 那么正确的语法是什么以及如何使用下面的函数进行编码 str rot13 That
  • setcookie with expire=0 浏览器关闭后不会过期

    我使用setcookie来制作一个过期 0的cookie 从 PHP 文档来看 link http php net manual en function setcookie php cookie 过期的时间 这是一个 Unix 时间戳 所以
  • 无法访问 localhost/xampp/index.php

    我刚刚安装了 Windows 7 的 XAMPP 控制面板似乎工作正常 我启动了 MySql 和 Apache 我遇到的问题是 当我在浏览器 Google Chrome 中输入 localhost 时 它会将我发送到 http localh
  • PHP MongoDb 驱动程序:如何设置执行代码的超时

    我有以下代码 它在 MongoDb 端执行一段代码 mongoCode new MongoCode Some JS code db gt execute mongoCode array socketTimeoutMS gt 1000000
  • AWS-PHP-SDK / SNS 直接寻址返回错误

    您好 我正在使用 Laravel 4 设置来利用 AWS SNS 向我的 iOS 设备发送推送消息 从 AWS 控制台向我的设备发布命令效果很好 然后我尝试从 PHP sns AWS get sns sns gt publish array
  • CakePHP 视图包括其他视图

    我有一个 CakePHP 应用程序 在某些时候会显示带有产品媒体 图片或视频 的视图 我想知道是否有某种方式可以包含另一个威胁视频或威胁图片的视图 具体取决于标志 我想将这些 小视图 用于其他几个目的 所以它应该 像 蛋糕组件一样 以便重用
  • 使用 PHP/linux 将文件合并为单个 PDF

    我正在研究如何将多个 PDF 合并为一个 PDF 我正在寻找一个图书馆可靠且坚固尽可能 最好有一个库可以保留书签 鬼脚本 http pages cs wisc edu ghost 可以在保存书签的位置进行连接 但我遇到了麻烦 在一种情况下它
  • 分页显示所有其他页面上第 1 页的相同帖子

    我最近在创建即将发生的事件列表时得到了很多帮助 请参阅此处显示即将举行的活动 包括今天的活动 https stackoverflow com questions 17343615 showing upcoming events includ
  • 覆盖 FOS 用户包中的“更改密码”模板

    我做了一些研究 遗憾的是找不到任何帮助 因此 我将 FOSUserBundle ChangePasswordAction 渲染到我的模板中 但它显示供应商提供的默认模板 我的渲染控制器的模板 block body h2 Einstellun
  • 使用 XPATH(和 PHP)从样式属性中选择背景 url

    我只想从此背景图像样式属性中选择 url 这可以通过 XPATH 实现吗 a href http www test com style background image none test a 我有类似的东西 url xpath gt qu
  • 如何在 Windows 上安装 Zend 框架

    安装 Zend Framework 就是这么简单 是的 对 好吧 我正在写一本初学者的书 有一件不太详细的事情是最重要的部分 安装该死的东西 浏览了几个小时的快速入门指南后 它只说 下载 Zend 添加包含目录 bla bla 然后就完成了
  • Nginx 502 网关错误。通过增加buffer来解决。为什么?

    我正在设置 LEMP 堆栈来运行 Drupal 我安装了 Nginx 和 PHP FastCGI Nginx 工作正常 但任何运行 PHP 的尝试都会出现错误 502 Bad Gateway 谷歌很快发现 nginx 502 错误网关 ht
  • 如何在codeigniter中将上传图片比例限制为16:9?

    这是我用来上传图像的代码 this gt load gt library upload ext pathinfo file name PATHINFO EXTENSION img name now ext imgConfig upload
  • 带倒计时的php循环

    假设我从 400 开始计数器 我将如何执行一个向后运行直到 0 的 foreach 循环 伪代码 i 400 foreach SOMETHING do stuff i for i 400 i gt 0 i do stuff 其他方法 i 4
  • 如何处理 REST api 中的 php 通知、警告和错误?

    在 REST API 中 200 响应表明操作成功 PHP 默认情况下直接在响应正文中输出错误消息 而不更改响应代码 在 SPA 中 用户无法直接看到响应文本 因此 当应用程序未按预期工作时 我通过 FireBug 检查响应正文 以检查可能
  • PHP 检查当前日期是在设定日期之前还是之后

    我从数据库中提取一个日期 其格式为 dd mm YYYY 我想做的是检查当前日期 如果当前日期早于数据库中的日期 则需要打印数据库日期 如果是在之后 则需要打印 继续 有人能指出我正确的方向吗 if strtotime database d
  • 使用 Vue 的多模式组件

    我在 Vue 中实现动态模式组件时遇到问题 A common approach I follow to display a set of data fetched from the db is I dump each of the rows
  • 矩形超出边界是什么意思

    PPB Graphics2D PaintImageData 矩形超出界限是什么意思 我几乎在我检查的每一段代码中都看到了它 最新的代码是 define my consumer key define my consumer secret oa

随机推荐

  • NginX 友好的 PHP 框架

    我正在寻找一种 PHP 框架 如果幸运的话 它只能在 FastCGI 下的 nginx 中工作 否则 不需要太多调整 Symfony 1 4 与 nginx 非常棒 我已经完成了调整 这是我的生产配置的概括 我可以保证它适合生产使用 ser
  • 删除因子级别的“空单元格”

    我有一个数据框 其中有一列 列中有一些数据和一些空单元格 当我检查该列的级别时 它显示三个级别 因为它将空单元格作为一个级别 我想删除那个级别 假设我有 editor note starting from R 4 0 0 stringsAs
  • HTML输入24位格式的时间

    我正在使用下面的 HTML 标签
  • 黑莓条码扫描库?

    有人很好地掌握了条形码扫描库 可以根据数码相机的输入读取 UPC A EAN 13 或其他主要条形码格式吗 RIM 是否有可用于此的标准库 我知道 BlackBerry Messenger 内置了 2D 条码扫描功能 所以我猜测一定有可用的
  • 将上下文菜单添加到 Inno Setup 页面

    如何将一些上下文菜单添加到 Inno Setup 的特定页面 例如 在安装页面中 如果用户右键单击页面 他可以看到 取消 或 暂停 菜单项 可以执行一些操作 Inno Setup 没有上下文菜单 API 甚至没有用于处理鼠标点击的 API
  • Golang 多部分文件表单请求

    我正在针对 Mapbox 编写一个 API 客户端 将一批 svg 图像上传到自定义地图 他们为此提供的 api 记录了一个运行良好的 cUrl 调用示例 curl F images include mapbox sprites dark
  • 如何在 VS Express 2010 中进行发布构建?

    或者我应该复制 bin Release 中除 pdb 之外的所有文件 UPD UPD 2 这就是我在 构建 选项卡的 高级 设置中找到的内容 这是我要找的吗 要在 VS 2010 Express 中进行发布构建 您需要将项目的构建配置从 调
  • 使用数组 Javascript 制作幻灯片

    我的目标是制作幻灯片 我这里只有 1 张图片 打算稍后使用更多
  • 如何在 JS 中使用 Regexp 使 \ 成为文字反斜杠

    我对正则表达式很陌生 似乎 用于元字符 我的问题是我想精确搜索这个字符串 mediaType img 现在我还想动态地为 img 添加一个变量 所以我希望它是这样的 new RegExp mediaType variable 我该如何编写才
  • 车把模板带有“div”标签而不是“script”

    其实问题就在主题里 是否可以制作车把模板框架 以识别 div 标签中的模板而不是 script 标签中的模板 例如 我想使用此标记创建模板 div class text x handlebars template h2 I m templa
  • 如何发送POST和GET请求?

    我想发送我的JSON到一个 URL POST and GET NSMutableDictionary JSONDict NSMutableDictionary alloc init JSONDict setValue myValue for
  • 无法在更新面板之外更新标签

    我花了很多时间研究如何在更新面板之外更新标签 终于找到了一些东西 但它不更新标签 如果我们刷新页面就可以正常工作了 请让我知道代码中的错误或任何新的方法 请在下面找到我的代码 我认为需要为脚本管理器或 dataItem 添加更多代码 谢谢各
  • C 中的 Python 实例方法

    考虑以下 Python 3 x 代码 class Foo object def bar self pass foo Foo 如何用C语言编写相同的功能 我的意思是 如何使用 C 中的方法创建对象 然后从中创建一个实例 Edit 哦对不起 我
  • Web服务客户端,我应该保留服务还是端口实例?

    我正在开发网络服务客户端cxf codegen plugin它正在生成类MyService extends Service对于客户端部分 我现在的问题是 当我创建客户端时 我应该MyService每次我想发送请求或保留它并每次创建端口时都创
  • Java中的字符串数组初始化[重复]

    这个问题在这里已经有答案了 如果我声明一个String array String names new String 3 那么为什么我们不能像这样给上面声明的数组赋值 names Ankit Bohra Xyz 申报时您可以进行以下操作 St
  • Delphi XE6 - 使用“USE_INDY”构建的 SOAP 通过代理问题连接到 Web 服务

    我有一个使用连接到网络服务的应用程序THttpRio成分 Web服务有基本的身份验证 我使用 USE INDY 指令编译了 Delphi SOAP 单元 以便 THttpRio 组件使用 WinHttp 现在我需要通过代理访问我的网络服务
  • 尝试使用 Swift AVPlayer 播放音频

    这是我当前的视图控制器 import UIKit import AVFoundation class SecondViewController UIViewController override func viewDidLoad var p
  • 重叠的 AWT 线和 Swing JLabels

    我在使用线基元的应用程序中遇到问题JLables 我尝试解释一下 我必须使用线条来代表道路来绘制车辆路线JLabels来代表城市 我需要使用JLabels因为每个 JLabel 都有一个监听器 用于显示包含城市信息的对话框 我重新定义pai
  • 如果返回值被忽略,如何发出警告?

    我想查看我的代码 C 中忽略函数返回值的所有位置 我怎样才能做到这一点 使用 gcc 或静态代码分析工具 错误代码示例 int f int z return z z 2 z 3 z z 23 int main int i 7 f i lt
  • Ajax 会话丢失

    我将 Symfony 应用程序从 Symfony 4 0 7 升级到 Symfony 4 1 之后 AJAX 调用会丢失会话值 我同时调用了大约 6 个 ajax 请求 第一个进展顺利 但其他人正在失去会话值 它仅在迁移到 Symfony