我在 stackoverflow 和其他平台(1、2)上已经讨论过一个问题,但在我的情况下提供的解决方案是不可能的。
我正在尝试通过 POST 请求和 fetch()从 BlueSnap(支付处理公司,有关确切操作的详细信息可以在此处找到)获取令牌。请求正在运行,并且令牌正在通过响应中的 Location 标头发送给我。我可以通过 Chrome 开发工具看到标题和所需的令牌,但我无法在我的 JS 代码中获取和使用它。response.headers 对象是空的,我尝试访问 response.header.Location 的任何方式都失败了。
我试过这个:
console.log(response.headers.get('location'))
还有这个
for(const header of response.headers){
console.log(header);
}
但这似乎都不起作用。
正如这里所讨论的,我试图添加这个:
'Access-Control-Expose-Headers': 'location'
到我请求中的标头列表,因此它符合CORS 政策要求,但它没有帮助。我认为这应该插入服务器端,而不是客户端。我的猜测是我不是第一个遇到这个问题的人,但是 BlueSnap 的客户支持没有解决这个问题。唯一可能的解决方案是在服务器上添加'Access-Control-Expose-Headers': 'location'吗?
我的问题是:我如何访问这个 http 响应位置标头,该标头已明确发送到我的浏览器,但目前不能与我的 JS 代码一起使用。
非常感谢您的时间和精力!
*我认为我对这个特定问题并不重要,但我正在使用 ReactJS 进行这个项目