Node.js 节点服务器无法检索react-axios请求标头参数的值
我需要访问服务器端(节点)中的axios头授权令牌,显示未定义。请帮忙 客户端(React)请求:Node.js 节点服务器无法检索react-axios请求标头参数的值,node.js,reactjs,http-headers,axios,Node.js,Reactjs,Http Headers,Axios,我需要访问服务器端(节点)中的axios头授权令牌,显示未定义。请帮忙 客户端(React)请求: var config = { headers: { 'cache-control':'no-cache', 'content-type': 'application/x-www-form-urlencoded', 'authorization' :'bearer '+Auth.getToken()
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);
});
服务器端(节点):
显示未定义的日志。我还控制整个标题,但其输出为:
{ 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' }
如何检索授权令牌值
谢谢。我想您是在使用express。如果是这样,请尝试
req.get('authorization')
,而不是将标题值获取为req.headers.authorization
如果您正在进行跨源HTTP请求,请确保您的服务器中已启用CORS。如果您使用的是express中间件,则可以使用
我想您这里的问题是,由于CORS尚未启用,您的服务器将首先收到一个选项请求,因此您控制台的整个头都来自选项请求,而不是您想要的GET请求。您可以使用
console.log(req.method)
进行验证。顺便说一句,请求标头。授权可以接收标头。不工作,console.log(请求标头(“授权”);仍显示未定义。您使用的是哪个版本的express?版本:express@4.15.4@我已经更新了答案。请再次检查控制台日志(请求方法)的可能副本;显示“选项”和req.headers.authorization仍未定义。是否在服务器上启用了CORS?是的,这是我的本地主机。我设置app.use(函数(req,res,next){res.header(“访问控制允许来源”,“*””);res.header(“访问控制允许来源”,“来源,X请求使用,内容类型,接受,授权”);res.header('Access-Control-Allow-Methods','GET,PUT,POST,DELETE,OPTIONS');next();
{ 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' }