【发布时间】:2017-06-27 05:46:21
【问题描述】:
我有一个域。我有两个使用此域的应用程序:
www.mydomain.com/first
www.mydomain.com/second
我通过以下命令从www.mydomain.com/first 重定向到www.mydomain.com/second:res.redirect('/second');
我希望位于www.mydomain.com/second 的应用程序然后动态重定向回www.mydomain.com/first(而不是通过硬编码地址)。
所以我在想www.mydomain.com/second 可以通过以下命令获取请求引用字段:req.get('Referrer')。我期待这将返回值 www.mydomain.com/first、/first 或 first,但它返回 undefined。
我如何获得价值?
【问题讨论】:
-
在我看来,您正在创建一个无限循环,其中第一个重定向到第二个重定向到第一个重定向到第二个等等......
-
在 HTTP 中是
referer(注意一个'r')。 -
@zeronone - Express 文档说“Referrer 和 Referer 字段是可互换的”与
req.get()在这里:expressjs.com/en/api.html#req.get -
@jfriend00 不是真的。第二个应用程序将设置第一个域所需的 cookie。所以它可能看起来如此,但它背后的逻辑是合理的:)
-
我认为您指望的是规范中没有的东西。从我读到的一点点来看,重定向到/second 时的Referer 标头未设置为/first。如果您要做的是让您的服务器知道当请求进入 /second 时它来自重定向,那么您应该设置 cookie 或在重定向 URL 上使用查询参数。然后您的服务器可以看到这一点。查询参数可能会更好,因为它是临时的,但您也可以设置一个 cookie 供服务器查看,然后在看到 cookie 时将其删除。