React中如何通过Axios从API响应头获取会话ID
如何从Axios响应头中获取X-Auth-Token
先试试直接从响应头对象里读取令牌:
const token = response.headers['x-auth-token']; // 或者根据服务端返回的字段大小写调整,比如: const token = response.headers['X-Auth-Token']; console.log(token);
如果这么写还是拿不到,基本是跨域请求的CORS配置问题:
- 浏览器跨域时,默认只会暴露
Cache-Control、Content-Type这类标准响应头,自定义的X-Auth-Token不在默认列表里,前端自然读不到。 - 必须让服务端在响应头里添加
Access-Control-Expose-Headers,明确指定要暴露的自定义头:Access-Control-Expose-Headers: X-Auth-Token
举个Node.js/Express的服务端配置例子:
app.use((req, res, next) => { res.header('Access-Control-Expose-Headers', 'X-Auth-Token'); next(); });
等服务端配置好后,再用前面的代码读取就能拿到令牌了。另外可以先看console.log(response.headers)的输出,如果里面根本没有X-Auth-Token,那肯定是服务端没暴露;如果有,就是你读取的键名大小写不对,调整下就行。
内容的提问来源于stack exchange,提问作者booya
相关产品推荐
相关产品推荐

