express的res.redirect('back')是干什么用的啊?
我个人查找了官网文档
是下面这样描述的
A back
redirection redirects the request back to the referer, defaulting to /
when the referer is missing.
res.redirect('back')
自己是这样尝试使用的
app.get('/back',function(req,res){res.redirect('back');
})
<a href="https://segmentfault.com/back">后退</a>
我理解为了是后退,可是实际操作的时候,还待在本页不变
有哪位大神知道这res.redirect('back')到底是干啥用的吗?
回答
这个并不是常规意义上的“退回上一步”。这个操作是将访问重定向到了请求头(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="https://segmentfault.com/back">后退</a>
,此时的 referer 永远是 https://b.com/yyy
,所以你会停留在本页面。
你还可以这么理解:你目前在 yyy 页面,点击链接后你跳转到了 back 页面,但是 back 页面的逻辑是回退到上一个页面,于是又跳回了 yyy 页面。
以上是 express的res.redirect('back')是干什么用的啊? 的全部内容, 来源链接: utcz.com/a/67063.html