gpt4 book ai didi

grails - 转发而不是重定向,同时仍然滚动带有片段的页面

转载 作者:行者123 更新时间:2023-12-02 15:13:24 24 4
gpt4 key购买 nike

我使用forward而不是redirect(以隐藏URL中的参数),问题是我想将一个片段传递给forward,这样我的页面才能滚动到指定位置。
使用redirect,可以工作:

redirect(controller: "mycontroller", action: "myaction", fragment: "anchor")

但是使用 forward,它不会滚动到 anchor 位置:
forward(controller: "mycontroller", action: "myaction", fragment: "anchor")

我该如何解决?

最佳答案

该片段可与 redirect 一起使用的原因是,重定向告诉浏览器向指定的URL发出另一个(GET)请求。这使浏览器有机会1.提取新页面,然后2.滚动到适当的 anchor 。

使用forward,servlet容器仅告诉另一段代码来处理请求-它对于浏览器实际上是不可见的,因此浏览器将无法滚动到任何地方。这就是fragment isn't a valid option for forward 的原因。

为此,您必须:

  • 重定向而不是转发,或
  • 使用JavaScript使页面滚动,或
  • 发送带有初始请求的片段,该请求最终被转发

  • 以上任何一项均应在适当的条件下工作;但是,我不确定我们是否对您提出的请求有足够的信息,以提供更具体的示例。

    关于grails - 转发而不是重定向,同时仍然滚动带有片段的页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10231523/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com