GCP 负载平衡器/API 网关 CORS 问题

GCP Load Balancer / API Gateway CORS issue

我有一个 API 托管在 Google 云 运行 上,并使用 API 网关和网关前面的 GCP 负载均衡器公开。此 API 应该由多个租户使用,因此请求将来自不同的来源。

现在,每当我尝试从另一个租户域访问 API 时,都会因为 CORS 问题收到 404。

当我第一次设置它时,我收到一个错误消息,指出 Access-Control-Allow-Origin 没有出现在响应中。然后,我更新了负载均衡器配置以将 Access-Control-Allow-Origin: '*' 添加到响应的 header.

现在,设置 header 后,我仍然收到 404,但错误消息已更改为 Response to preflight request doesn't pass access control check: It does not have HTTP ok status.

有什么方法可以将负载均衡器设置为不因 CORS 问题而阻止请求?

您好 Thiago,当从浏览器通过 XMLHttpRequest (XHR) 请求 API 时,浏览器将发送两个请求: 第一次使用 OPTION 方法获取预检 header(这必须处理) 第二个实际请求 POST/GET/...

总结: 测试您是否可以使用 curl 发出请求,来自命令行的请求将会通过,因为它不会向您的端点发送 OPTION 请求。如果这是真的,则意味着您不允许对您的端点发出 OPTION 请求,这就是问题所在。

希望这能解决您的问题。