H5W3
当前位置:H5W3 > 问答 > 正文

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

express的res.redirect('back')是干什么用的啊?

当我们从 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 页面。

未经允许不得转载:H5W3 » express的res.redirect(‘back’)是干什么用的啊?

赞 (0)

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址