2014-09-20 48 views
1

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

+0

难道是足够通过JavaScript只得到用户代理? navigator.userAgent在任何浏览器都会得到这些信息。 – netpoetica 2014-09-20 22:25:24

+0

Ahhhh。我只是想得很深,却没有想到最简单的事情。是的,我知道这一点,但从来没有想过它。感谢哥们:) – Sahan 2014-09-20 22:36:45

+0

Np :)我打算将它作为问题的答案发布,这样如果其他人来了,他们将能够更轻松地找到它。如果你有时间接受那将是伟大的答案! – netpoetica 2014-09-20 23:42:14

回答

7

如果您有兴趣User agent在服务器端,您可以从请求的HTTP头获取的数据:

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

请注意,标题名称需要user-agent(小写字母),而不是User-Agent

此示例,控制器将返回JSON与当前浏览器的用户代理JSON响应的

module.exports = { 

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

例子:

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

@ user3656084这应该是被接受的答案。 [tag:node.js]中的'request.headers'相当于[tag:PHP]中的'$ _SERVER'。 – fardjad 2014-09-22 09:42:58

+0

非常感谢所有的答案 – Sahan 2014-09-23 01:03:36