0

我纯粹是在网站的前端工作,为了更流畅的页面转换和更好的流程,我使用了barba.js库,我发现它非常易于使用且超级酷。

一切都很好,但只有一件事。

该项目的后端将在 Typo3 中实现,后端团队必须对所有表单使用 POST。

通常,如果提交了 POST 表单并且您在新页面上并点击 Refresh(F5、Cmd-R 等),浏览器会在提示/对话中询问您是否要“重新提交表单”。

但是,使用 barba ajax 页面加载并没有发生这种情况,并且在新页面上刷新时会抛出一个typo3 错误。

所以表单提交工作正常,但是一旦在结果页面上发布表单,当点击刷新时它总是会抛出一个错误,因为可能没有发送标题。

在此处输入图像描述

关于如何解决这个问题的任何想法?这是什么原因造成的?

4

1 回答 1

0

只需检查参数是否存在:

$this->request->hasArgument('name'){
    try...
}

但是看起来它没有将参数传递给下一个视图。请记住,不应手动刷新 POST 发送的表单以避免此类情况。常见的解决方案是在提交表单并处理其数据后立即在控制器中重定向到某个 GET 视图(即感谢页面)。

在控制器的操作中,您可以通过以下方式重定向它:

$this->redirect('thankYouPage'); // will redirect to `thankYouPageAction` in the same controller

或者

$this->redirectToUri('uri/to/some/existing/thank-you-page')
于 2021-03-19T12:43:56.673 回答