首页 > 解决方案 > 从使用 CRA 创建的 Firebase 托管 React 应用程序访问外部 API

问题描述

我有一个托管在 Firebase 上的 React 应用程序(CRA),并且正在尝试访问外部 Rest API(使用 javascript 的fetch()),但由于该 API 与 web-app 不在同一个域中,它会引发“CORS”错误. API 的标头Access-Control-Allow-Origin*. 我可以在开发模式下使用代理来解决这个package.json问题,但是在托管应用程序后似乎没有任何效果。

尝试了以下事情

标签: reactjsfirebaseapicorscreate-react-app

解决方案


正确的 CORS 标头是Access-Control-Allow-Origin,不是Access-Control-Origin。此外,根据请求的性质,您可能需要预检请求并且可能无法*用作来源。

在客户端,您无法绕过 CORS——它被明确设计为一种浏览器安全机制,以防止意外的跨域请求。如果您可以控制 API 服务器,则应该能够解决此问题。如果不这样做,您可能需要使用云函数将请求代理到外部 API。


推荐阅读