Angular 13如何获取HTTP请求的全部响应头数据?
解决Angular 13无法获取完整响应头的问题
问题原因
这是浏览器的CORS安全限制导致的:
- Postman不属于浏览器环境,不受CORS规则约束,所以能看到全部响应头
- 浏览器开发者工具能显示所有响应头,但出于安全考虑,只有被服务器明确标记为可暴露的响应头,才允许前端JavaScript(也就是你的Angular代码)访问,默认只有
Content-Type等少数安全头可直接访问
解决步骤
修改服务器端配置
在你的后端服务中,添加Access-Control-Expose-Headers响应头,把需要前端访问的自定义头(比如你用到的pagination)列进去。- 示例(Node.js/Express):
res.header('Access-Control-Expose-Headers', 'pagination'); // 如果有多个自定义头,用逗号分隔:'pagination, X-Total-Count, X-Another-Header' - 其他后端框架(Spring Boot、ASP.NET等)对应配置这个响应头即可,具体语法参考框架文档。
- 示例(Node.js/Express):
验证Angular代码
服务器配置完成后,你的现有代码无需修改,就能正常获取到pagination头,console.log(response)也会显示所有被暴露的响应头。
内容的提问来源于stack exchange,提问作者Mh Dip
相关产品推荐
相关产品推荐

