gpt4 book ai didi

browser-history - 使用 post-redirect-get 的 self 更新表单的历史记录被破坏

转载 作者:行者123 更新时间:2023-12-04 08:53:54 24 4
gpt4 key购买 nike

我有一个网址 /books ,其中列出了一些书籍和一个 URL 模式 /books/{some-book-title}它显示了书籍元数据的查看/更新表单。这是一个典型的用户故事,其中用户更正了不正确的作者条目:

GET /books

<a href="/books/ulysses">Ulysses</a>
<a href="/books/don-quixote">Don Quixote</a>

GET /books/ulysses

<form action="/books/ulysses" method="post" enctype="application/x-www-form-urlencoded">
<input name="author" value="Jamessss Joycessss">
</form>

POST /books/ulysses FORMDATA author=James+Joyce

Redirect 303 SEE OTHER location = /books/ulysses

GET /books/ulysses

<form action="/books/ulysses" method="post" enctype="application/x-www-form-urlencoded">
<input name="author" value="James Joyce">
</form>

问题是历史堆栈现在是
  • /books
  • /books/ulysses
  • /books/ulysses

  • 这样当用户按下“返回”时,他们就不会返回 /books ,他们只是刷新当前页面。是否有一种非 JavaScript 方法来处理更新案例,以便后退按钮具有预期的行为?如果没有,解决这个问题的javascript方法是什么?

    编辑:如果您多次发帖,那就更令人困惑了
    GET /books
    GET /books/ulysses author=Jamesss Joycesss
    POST author=3 -> redirect shows author=3
    POST author=2 -> redirect shows author=2
    POST author=1 -> redirect shows author=1
    Press back button /books/ulysses shows author=1
    Press back button /books/ulysses shows author=2 (!!!)
    Press back button /books/ulysses shows author=3 (!!!)
    Press back button /books

    最佳答案

    修改后退按钮行为的 JavaScript 方法是使用 历史 API

    这是转到历史堆栈中第一页的快速方法。只需为后退按钮添加一个事件监听器并使用历史 API。

    window.history.go(0);

    查看 API: https://developer.mozilla.org/en-US/docs/Web/API/History_API

    关于browser-history - 使用 post-redirect-get 的 self 更新表单的历史记录被破坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55151858/

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