【问题标题】:Get referrer value in express?在快递中获取推荐人价值?
【发布时间】:2017-06-27 05:46:21
【问题描述】:

我有一个域。我有两个使用此域的应用程序:

www.mydomain.com/first

www.mydomain.com/second

我通过以下命令从www.mydomain.com/first 重定向到www.mydomain.com/secondres.redirect('/second');

我希望位于www.mydomain.com/second 的应用程序然后动态重定向回www.mydomain.com/first(而不是通过硬编码地址)。

所以我在想www.mydomain.com/second 可以通过以下命令获取请求引用字段:req.get('Referrer')。我期待这将返回值 www.mydomain.com/first/firstfirst,但它返回 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 时将其删除。

标签: node.js express


【解决方案1】:

因为您希望两个应用程序都存在于同一个域中,您可以创建一个包含两个“孩子”的包装应用程序。

var express = require('express');

var app1 = express();
app1.get('/first', function(req, res) {
  res.send('response from the first app');
})

var app2 = express();
app2.get('/second', function(req, res) {
  res.send('response from the second app');
});

var app = express();
app.use(app1);
app.use(app2);

app.listen(1337);

因为这两个应用程序现在都位于同一个域中,所以您可以重定向到您想要的任何 url,就好像它在同一个应用程序中一样。

【讨论】:

    猜你喜欢
    • 2014-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-12
    • 1970-01-01
    相关资源
    最近更新 更多