使用noCacheHash = true参数生成操作链接无法按预期工作

问题描述 投票:0回答:1

Typo3 v9.5.5,PHP 7.2,从8.7升级后。缓存清除,缓存关闭,开发环境。我的扩展名为requireCHashArgumentForActionArguments设置为0。

我使用如下语法生成操作的链接:

<f:link.action action="test" noCacheHash="1"></f:link.action>

不幸的是,cHash参数始终存在于返回的URL中。它打破了我的扩展逻辑,因为我在通过ajax请求调用action之前在我的JavaScript代码中为URL添加了额外的属性。

我期望noCacheHash参数导致从URL中删除cHash参数。

我期望设置requireCHashArgumentForActionArguments防止任何URL验证问题,即使URL中存在cHash

我知道cHashExcludedParameters配置设置,但我想通常关闭cHash我的扩展。

所以,我要求帮助或解释。

编辑:如果我从URL手动删除qazxsw poi参数并调用它,请求处理成功。所以,这意味着,chash处理正常,但只有当URL中没有requireCHashArgumentForActionArguments时。

编辑2:

在我的情况下,无效的cHash导致调用chash处理程序。我在pageNotFoundOnCHashError设置了$GLOBALS['TYPO3_CONF_VARS']['FE']['pageNotFoundOnCHashError'] = false;,它“解决”了一个问题(不是一个优雅的修复)。

typo3 typo3-extensions typo3-9.x
1个回答
1
投票

您需要使用属性创建自己的RouteEnhancer以删除URL中的cHash。在这里AdditionalConfiguration.php是一些很好的例子。

你的qazxswpo应该是这样的:

RoutingEnhancersAndAspects
© www.soinside.com 2019 - 2024. All rights reserved.