如何解决Ajax 页面刷新 (barba.js) 和 POST 表单 - 没有“重新提交表单”
我纯粹是在网站前端工作,为了更流畅的页面转换和更好的流程,我使用了 barba.js 库,我发现它非常易于使用且非常酷。
一切都很好,但有一件事。
此项目的后端将在 Typo3 中实现,后端团队必须对所有表单使用 POST。
通常,如果提交了 POST 表单并且您在新页面上并点击刷新(F5、Cmd-R 等),浏览器会询问您是否要在提示/对话中“重新提交表单”。
但是,使用 barba ajax 页面加载时,这不会发生,并且在刷新新页面时会抛出一个 Typ3 错误。
所以表单提交工作正常,但是一旦在 POST 表单的结果页面上,当点击刷新时它总是抛出错误,因为标题可能没有发送。
知道如何解决这个问题吗?这是什么原因造成的?
解决方法
您可以简单地检查参数是否存在:
$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')
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。