首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用后重定向获取的自更新表单的中断历史

使用后重定向获取的自更新表单的中断历史
EN

Stack Overflow用户
提问于 2019-03-13 22:03:08
回答 1查看 148关注 0票数 7

我有一个URL /books,它列出了一些书籍,还有一个URL模式/books/{some-book-title},它显示了一本书的元数据的视图/更新表单。下面是一个典型的用户故事,其中用户纠正了一个不正确的作者条目:

代码语言:javascript
复制
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

这样,当用户按下" back“时,他们就不会返回到/books,而是刷新当前页面。是否有一种非javascript方式来处理更新案例,以便back按钮具有预期的行为?如果没有,那么修复这个问题的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
EN

回答 1

Stack Overflow用户

发布于 2019-03-23 07:07:21

修改back按钮行为的JavaScript方法是使用历史记录 API。

下面是一种快速的方法,可以转到历史堆栈的第一页。只需为back按钮添加一个事件侦听器并使用历史API即可。

代码语言:javascript
复制
window.history.go(0);

看看API:API

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55151858

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档