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 会话丢失 的相关文章

  • 作曲家创建项目 symfony/骨骼 new_project“4.0”

    它安装 Symfony 4 1 3 内核 src 环境 dev 调试 true 如何让它准确安装 4 0 composer create project symfony skeleton new project 4 0 Installing
  • 使用 PHP 和 xpath 中的抓取功能提取 HTML 页面中的字符串

    我需要抓取这个 HTML 页面 https www sanita puglia it monitorpo aslfg monitorps web monitorps monitorPSperASL do codNazionale 16011
  • PHP 如何使用比较运算符比较字符串?

    我正在使用比较运算符来比较字符串 我需要对以下两个比较及其结果进行某种解释 if ai gt i echo Yes else echo No output No 为什么这些会这样输出 if ia gt i echo Yes else ech
  • json支持阿拉伯字符吗?

    我想问一个简单的问题 json 是否支持阿拉伯字符 我的意思是当我搜索类似以下内容时 values database gt get by name echo json encode array returnedFromValue gt va
  • 如何?使用 PHP API 提交亚马逊创建配送订单 XML

    我现在正在努力使用 Amazon API 我正在尝试创建履行订单 将订单发送到亚马逊以供他们履行 我首先需要创建我使用过的文档 的XMLhttp www jyi org wp content uploads Amazon xml pdf h
  • 在php mysql排行榜表中显示用户排名?

    我创建了一个测验页面 将登录用户的测验结果存储到排行榜 我有一个名为 Members 的表 其中包含 user 和 quiz score 列 我根据登录用户进行的测验结果打印出排行榜 我在个人资料页面的排行榜中显示特定用户的位置时遇到问题
  • 如何使 WooCommerce 3.0 Single Image Gallery 像 2.x 版本一样?

    如果您更新到 WooCommerce 3 0 并且您的主题尚未更新 如何使 WooCommerce 3 0 单一产品图片库像以前的版本一样工作 对于不复制模板文件并使用条件 挂钩和过滤器进行修改以避免许多问题的主题来说 这是一个问题 要添加
  • 是否可以执行扩展名为 file.php.jpg 的 PHP?

    网站合法文件image upload php用于上传文件89471928047 php jpg这是简单的文件上传表单 将 tmp 文件复制到同一图像文件夹 他们如何设法执行它并通过它上传其他文件 有人知道这怎么可能吗 PHP version
  • 多个提交按钮

    我在 HTML 和 PHP 中遇到多个提交按钮时遇到问题 我尝试为基于 Web 的计算器编写 GUI 代码 这确实很容易 但是 php 中的函数并不那么容易 所以我有这个简单的 GUI 有 6 个提交按钮
  • 让 PHPUnit 忽略一些事情?

    我有一个 PHPUnit 测试类 我希望在测试运行中忽略它 我知道我可以通过重命名它来做到这一点 以便它的文件名中不包含 测试 一词 但我不想这样做 因为它比我想要的更混乱了源代码控制水域 有人有建议吗 有几个选项phpunit命令可以帮助
  • 以编程方式将 Magento 订单标记为完整

    当我从第三方服务收到特定响应时 我尝试将 处理 订单标记为 完成 我已经为此做好了一切设置 但唯一的问题是订单仍处于处理状态 我正在生成发票 不过我认为我不需要这个 因为每个项目在 Magento 后端都被标记为 已开票 和发货 如下所示
  • session_regenerate_id(true) ajax 请求或快速刷新时的无效会话

    为了避免会话固定 我在每个 PHP 页面的开头使用以下代码 session set cookie params 900 domain 1 1 session start session regenerate id true 但如果页面刷新太
  • 如何限制注册用户尝试投票两次[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我对 php 编码和网站设计非常陌生 我正在尝试开发一个在线投票系统 只允许注册用户投票 已完成所有操作并且工作正常 但我需要的帮助是
  • 如何跨页面播放背景音乐

    我已经读过这个问题 我知道它只能用框架来完成 我真的不想要全站点 AJAX 如何在多个 HTML 页面上播放背景音频 https stackoverflow com questions 4210370 how to play a backg
  • 如果 CodeIgniter 方法不存在,则重定向到默认方法。

    我正在使用 CodeignIter 并且正在寻找一种在被调用方法不存在时为单个控制器编写自定义处理例程的方法 假设你打电话www website com components login In the components控制器 没有一个方
  • PHP 中的依赖注入

    我一直在研究依赖注入 我是在关注某件事还是完全没有关注 代码是好是坏 依赖注入与否 下面的代码是CMS系统的基础 现在有一个名为 page details 的表 其中存储了所有网页 目录 文件结构 htaccess index php cl
  • Laravel 自定义授权

    我在这里进行登录验证 LoginData Input except array token if Auth attempt LoginData return success 我的表不同 所以这里我更改表名称auth php table gt
  • Highcharts 异步服务器加载多个系列

    我正在尝试按照其示例使用 Highcharts 的延迟加载 http www highcharts com stock demo lazy loading http www highcharts com stock demo lazy lo
  • 限制在WhereHas内

    所以我想获取最后状态等于给定状态的请求 我尝试过first 但它给了我一个错误并且限制不起作用 requests Request whereHas requestStatus function query use status return
  • PHP 中的 imagecolortransparent 不起作用

    我想改变图像中的白色 http www arso gov si vreme napovedi 20in 20podatki radar gif http www arso gov si vreme napovedi 20in 20podat

随机推荐

  • 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