我有一个URL /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这样,当用户按下" back“时,他们就不会返回到/books,而是刷新当前页面。是否有一种非javascript方式来处理更新案例,以便back按钮具有预期的行为?如果没有,那么修复这个问题的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发布于 2019-03-23 07:07:21
修改back按钮行为的JavaScript方法是使用历史记录 API。
下面是一种快速的方法,可以转到历史堆栈的第一页。只需为back按钮添加一个事件侦听器并使用历史API即可。
window.history.go(0);看看API:API
https://stackoverflow.com/questions/55151858
复制相似问题