我想获得使用Node JS的连接库捆绑包发出的请求的“主机”标头。我的代码如下:
var app = connect()
.use(connect.logger('dev'))
.use(connect.static('public'))
.use(function(req, res){
var host = req.???
})
.listen(3000);
connect的文档在这里,但我没有看到任何详细说明上述代码中req
对象的API的内容。 http://www.senchalabs.org/connect/
编辑:请注意,成功的答案必须指向文档(我需要这个来验证我正在寻找的API提供的版本)。
答案 0 :(得分:283)
如果您使用Express 4.x,则可以使用Express 4.x API Reference
中所述的req.get(headerName)
方法
答案 1 :(得分:134)
检查console.log(req)
或console.log(req.headers);
答案 2 :(得分:134)
要查看HTTP请求标头列表,您可以使用:
console.log(JSON.stringify(req.headers));
以JSON格式返回列表。
{
"host":"localhost:8081",
"connection":"keep-alive",
"cache-control":"max-age=0",
"accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
"upgrade-insecure-requests":"1",
"user-agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.107 Safari/537.36",
"accept-encoding":"gzip, deflate, sdch",
"accept-language":"en-US,en;q=0.8,et;q=0.6"
}
答案 3 :(得分:46)
var host = req.headers['host'];
标题存储在JavaScript对象中,标题字符串作为对象键。
同样,可以使用
获取用户代理标头var userAgent = req.headers['user-agent'];
答案 4 :(得分:0)
仅在前端使用
axios.get(url, {headers : {Authorization:
承载$ {token} } }).then(....
以及后端:
:我在节点Express后端的res.setHeader()中添加了OPTIONS和Authorization
res.setHeader('Access-Control-Allow-Headers',
'Access-Control-Allow-Headers,
Origin,OPTIONS,Accept,Authorization,
X-Requested-With, Content-Type, Access-Control-Request-Method, Access-
Control-Request-Headers');
这确实解决了我的问题,希望您能这样做。
答案 5 :(得分:0)
LINQ
输出;
logger.info({headers:req.headers})