【问题标题】:Get user browser data from the request从请求中获取用户浏览器数据
【发布时间】:2014-09-20 22:18:49
【问题描述】:

在 php 中有一个全局的$_SERVER['HTTP_USER_AGENT'] 来获取用户浏览器数据。目前 SailsJS 中是否有类似的功能?

【问题讨论】:

  • 通过 JavaScript 获取用户代理就足够了吗?任何浏览器中的 navigator.userAgent 都会获得该信息。
  • 啊啊啊。我只是想得那么深,没有想到最简单的事情。是的,我知道这一点,但从未想过。谢谢哥们:)
  • Np :) 我将把它作为问题的答案发布,这样如果其他人出现,他们将能够更容易地找到它。如果您有时间接受答案,那就太好了!

标签: node.js sails.js middleware


【解决方案1】:

如果您对服务器端的User agent 感兴趣,您可以从请求的 HTTP 标头中获取该数据:

  • 具有所有请求标头的对象:req.headers
  • 带有用户代理请求标头的字符串:req.headers['user-agent'] 例如Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.120 Safari/537.36
  • 带有用户代理请求标头的字符串:req.get('user-agent') - 与上述表达式完全相同(给您相同的结果)。

请注意,标头名称必须是user-agent(小写字符)而不是User-Agent。

此示例控制器将使用您当前浏览器的用户代理返回 JSON

module.exports = {

  /**
   * `CustomController.getUserAgent()`
   */
  getUserAgent: function (req, res) {
    return res.json({
      userAgent: req.headers['user-agent']
    });
  }
}

JSON 响应示例:

{
    "userAgent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.120 Safari/537.36"
}

【讨论】:

  • @user3656084 这应该是公认的答案。 request.headers in node.js 相当于 $_SERVER in php。
  • 非常感谢所有的答案
猜你喜欢
  • 2019-07-12
  • 2013-09-15
  • 1970-01-01
  • 2022-09-30
  • 1970-01-01
  • 1970-01-01
  • 2011-11-19
  • 2018-09-24
  • 2021-08-31
相关资源
最近更新 更多