无法检索CORS响应标头"Set Cookie"



我已经在Cloudflare Pages中使用自定义域https://ui.example.com设置了react UI。有一个登录页面,允许用户输入用户名和密码。一旦他们提供了信息,它将使用axios对Cloudflare Workershttps://apis.example.com中托管的API进行调用,从那里我编写了示例代码来返回带有"secret-token"值的Set-Cookies头。

由于Pages和Workers位于不同的域中,因此我将Workers配置为向API响应提供以下值,以及Set-Cookies头值:

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

但是,当我使用login.jsx中编写的脚本(console.log(检查响应标头时,它只包含内容长度和内容类型。但当我检查Chrome(开发者工具网络(的响应时,上面的头值是存在的。

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

您需要使用不同的标头名称。

Set-Cookie是一个被禁止的响应标头,这意味着JavaScript不允许读取此标头。浏览器处理这个头(将cookie添加到cookie存储中(,然后在JavaScript看到响应之前将其删除

相反,可以尝试创建自己的标头名称,如X-Secret-Token

最新更新