J'aimerais obtenir l'en-tête "Host" d'une requête utilisant le bundle de bibliothèques de connexion de Node JS. Mon code ressemble à:
var app = connect()
.use(connect.logger('dev'))
.use(connect.static('public'))
.use(function(req, res){
var Host = req.???
})
.listen(3000);
La documentation de connect est ici mais je ne vois rien qui détaille l'API de l'objet req
dans le code ci-dessus. http://www.senchalabs.org/connect/
Edit: Notez qu'une réponse réussie doit pointer vers la documentation (j'ai besoin de cela pour vérifier quelle version a fourni l'API que je cherche).
Si vous utilisez Express 4.x, vous pouvez utiliser la méthode req.get(headerName)
comme décrit dans Référence de l'API Express 4.x
Vérifier la sortie de console.log(req)
ou console.log(req.headers);
Pour voir une liste des en-têtes de requête HTTP, vous pouvez utiliser:
console.log(JSON.stringify(req.headers));
pour renvoyer une liste au format 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"
}
var Host = req.headers['Host'];
Les en-têtes sont stockés dans un objet JavaScript, avec les chaînes d'en-tête sous forme de clés d'objet.
De même, l’en-tête user-agent pourrait être obtenu avec
var userAgent = req.headers['user-agent'];
juste utiliser sur le front-end:
axios.get(url, {headers : {Authorization:
Bearer $ {token} } }).then(....
et à l'arrière:
: i ajouté OPTIONS et autorisation à res.setHeader () dans le noeud express express
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');
cela a vraiment résolu mon problème, espérons que vous le ferez.