快速检测请求是不是来自子域?

Posted

技术标签:

【中文标题】快速检测请求是不是来自子域?【英文标题】:Express detect if request came from a subdomain?快速检测请求是否来自子域? 【发布时间】:2015-04-30 16:53:02 【问题描述】:

我正在使用 npm 子域,为了保持路由干净,我想做类似的事情。

router.get('/login_success',function(req,res) 

  if(req.subdomain) 
    res.redirect('/');
   else 
    res.sendStatus(200);
   

);

在上面,如果用户通过子域登录应用程序,我会重定向到呈现配置文件的子域根目录。

如果用户通过非子域路由登录,它使用 ajax 渲染视图,所以我需要发送一个 200 状态说明用户有效。

我认为这比每个都有两个单独的回调路由要干净得多。

所以我的问题是,有没有办法检测 req 是来自子域还是常规域。

我知道有req.headers.origin,但我想知道是否有更相关的方法,所以在本地和生产之间来回切换时我不必更改它。

【问题讨论】:

【参考方案1】:

使用req.subdomains,这将为您提供网址中使用的子域列表。 Here's 我从那里得到信息的。

【讨论】:

哇,我已经接近了,我尝试req.subdomain 只是为了测试它,但一无所获。我还检查了req 对象,但找不到任何东西。但它奏效了,了不起的人! 没问题,有更多问题请参考文档expressjs.com/4x/api.html

以上是关于快速检测请求是不是来自子域?的主要内容,如果未能解决你的问题,请参考以下文章

检测请求是不是来自防病毒软件

在所有页面而不是子域的请求路径中维护参数信息

ajax跨子域请求的两种现代方法

fiddler怎么抓取电脑浏览器请求

无法在域和子域之间检索数据

使用子域时防止预检选项