这个并不是常规意义上的“退回上一步”。这个操作是将访问重定向到了请求头(request headers)的 referer
。
当我们从 https://a.com/xxx
跳转到 https://b.com/yyy
时,我们向 yyy 发送的请求头里面,referer 是 https://a.com/xxx
。此时调用 res.redirect('back')
就会回退到 xxx 页面。
但是当我们进入到 yyy 页面后,再刷新页面,此时的 referer 会变成 https://b.com/yyy
,表现的结果就是,会停留在本页不动。
而你的情况更特殊,100% 是停留在本页,根本不会跳转到上一页。
以为你在 yyy 页面中使用超链接发起一个请求,<a href="/back">后退</a>
,此时的 referer 永远是 https://b.com/yyy
,所以你会停留在本页面。
你还可以这么理解:你目前在 yyy 页面,点击链接后你跳转到了 back 页面,但是 back 页面的逻辑是回退到上一个页面,于是又跳回了 yyy 页面。
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…