无法检索 CORS 响应 Header“Set-Cookie”

CORS Response Header “Set-Cookie” could not be retrieved

我在 Cloudflare Pages 中使用自定义域 https://ui.example.com 设置了 React UI。有一个登录页面,允许用户输入用户名和密码。一旦他们提供了信息,它将使用 axios 调用 Cloudflare Workers https://apis.example.com 中托管的 API,然后我从那里编写了示例代码 return Set-Cookies header 与“secret-token”值。

由于 Pages 和 Workers 驻留在不同的域中,因此除了 Set-Cookies header-values 之外,我还配置了 Workers 以向 API 响应提供以下值:

"Access-Control-Allow-Origin": "*"
"Access-Control-Allow-Methods": "*"
"Access-Control-Allow-Headers": "*"
"Access-Control-Expose-Headers": "Set-Cookie"

但是当我使用写在我的 login.jsx 中的脚本 (console.log) 检查响应 headers 时,它只包含 content-length 和 content-type .但是当我检查来自 Chrome(开发者工具网络)的响应时,上面的那些 header-values 存在。

在这种情况下,如何从 axios 调用中获取响应的 header 值?

您需要使用不同的 header 名称。

Set-Cookie是一个forbidden response header,这意味着JavaScript不允许读取这个header。浏览器处理此 header(将 cookie 添加到 cookie 存储)然后 删除它 在 JavaScript 完全看到响应之前。

相反,请尝试发明您自己的 header 名称,例如 X-Secret-Token