-3

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

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

当我第一次设置它时,我收到一个错误,即Access-Control-Allow-Origin响应中不存在。然后,我更新了负载均衡器配置以添加Access-Control-Allow-Origin: '*'到响应的标头中。

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

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

4

1 回答 1

4

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

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

希望这能解决您的问题。

于 2021-01-27T00:56:19.577 回答