【问题标题】:Location to Access-Control-Expose-Headers访问控制公开标头的位置
【发布时间】:2026-02-15 09:00:02
【问题描述】:

我终于明白了我从哪里来的问题,我无法理解我的标题位置的恢复。

我在this page 上发现问题来自 CORS。我需要指定:Access-Control-Expose-Headers: Location

但是看了几个论坛我还是不明白我该放哪里:Access-Control-Expose-Headers: Rental

你能帮我理解吗?请注意,我使用 ReactJs。

【问题讨论】:

  • 该标头需要放在来自服务器的响应中,而不是您的JS代码中。如果您无法控制服务器代码来修改它,您将无法像尝试那样从 JS 读取 Rental 标头。
  • 好的,非常感谢。但我无权访问 apache 服务器,因为它托管在 OVH。当我使用 ReactJs 时,我使用 NodeJs……你能帮帮我吗?
  • 如果您无权访问服务器,那么您将无法完成这项工作。 CORS 是一种无法解决的客户端安全限制。
  • 但在我的情况下,必须有人必须托管他们的网站并且必须激活:Access-Control-Expose-Headers ...因为在我的网站上,一旦用户登录,我必须允许添加信用卡。所以我使用了一个 API。必须将此重定向到 SMoney。在我的标头位置中,我看到了链接 SMoney,但是当我执行时:console.log (xhr.getAllResponseHeaders ());但是由于访问控制的问题,它返回给我 Null ...我目前不在 HTTPS 中...这有关系吗?
  • 我只能这么说,所以这是我最后一次。您需要更改服务器上的代码。 HTTPS 与问题完全无关。如果您使用第三方 API,则需要让他们为您添加该标头。如果他们还没有包含它,很可能 API 不是为 JS 使用而构建的。

标签: javascript jquery ajax cors response-headers


【解决方案1】:

您真的需要访问 Location 标头吗?没有它有什么方法可以实现你想要的吗?您的重定向应该仍然可以正常工作 - 只是因为没有“暴露”(通过 Access-Control-Expose-Headers: Location)响应标头,您无法在客户端 JavaScript 中对其进行任何操作。

【讨论】:

  • 您好,是的,我认为我们需要它,我们不能没有它,因为我们需要响应中返回的 url(标题:位置)。显然不是根据 Rory McCrossan 的说法,我不能在客户端做任何事情。它必须来自服务器...
  • 可悲的是,你有两个 Rory 说你对此无能为力 - Rory McCrossan 和我...... :(