我需要访问服务器端(节点)中的axios标头授权令牌,显示未定义。请帮忙..
客户端(React)请求:
var config = {
headers: {
'cache-control':'no-cache',
'content-type': 'application/x-www-form-urlencoded',
'authorization' :'bearer '+Auth.getToken()
}
};
axios.get(ApiConfig.API_BASE+'api/admin/profile/', config).then(function(response) {
this.setState({status:'success', profile: response.data.data});
}).catch(function(response) {
console.log(response);
});
服务器端(节点):
module.exports = (req, res, next) => {
console.log(req.headers.authorization);
if(!req.headers.authorization) {
return res.status(401).end();
}
};
日志显示未定义。我也控制整个标题,但它们的输出是:
{ host: 'localhost:8027',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:55.0) Gecko/20100101 Firefox/55.0',
accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'accept-language': 'en-US,en;q=0.5',
'accept-encoding': 'gzip, deflate',
'access-control-request-method': 'GET',
'access-control-request-headers': 'authorization,cache-control',
origin: 'http://localhost:3001',
connection: 'keep-alive' }
如何检索授权令牌值?
谢谢。
答案 0 :(得分:0)
我假设你正在使用快递。如果是,请尝试{{1}}。
,而不是将标头值设为{{1}}答案 1 :(得分:-1)
如果您要发出跨域HTTP请求,请确保已在服务器中启用CORS。如果您使用快速cors中间件可以使用。
我想你的问题是,由于CORS尚未启用,您的服务器将首先收到OPTIONS请求,因此您控制的整个标头来自OPTIONS请求,而不是您想要的GET请求。您可以使用console.log(req.method)
进行验证。 BTW req.headers.authorization
可以接收标题。