创建React App允许访问控制源问题

问题描述 投票:1回答:2

我部署了使用create-react-app创建的天气应用程序。在开发中,我会使用chrome扩展允许访问控制源。现在它与github页面一起部署,我收到错误:

请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,'https://boka44.github.io'原产地不允许进入。如果不透明响应满足您的需求,请将请求的模式设置为“no-cors”以获取禁用CORS的资源。

好像我需要在我的服务器上添加标题,但我对如何以及在何处添加它感到困惑。

我的代码在这里:https://github.com/Boka44/weather

任何帮助将深表感谢。

reactjs github-pages allow-same-origin
2个回答
2
投票

您正在呼叫的API端点(提供天气信息的端点)已禁用CORS,这意味着您永远不能进行面向客户端的呼叫(即通过浏览器),因为浏览器将阻止呼叫。

这里有2个选项:

  • 如果您可以更改API端点:您可以添加CORS标头以允许来自客户端应用程序域的来源。
  • 如果您无法更改服务器代码:创建自己的API端点,该端点调用原始API端点并让您的客户端应用程序调用您自己的API。 (即您只需创建一个代理服务器,将您的调用定向到原始API端点)。在这种情况下,您可以在服务器上指定CORS标头,以仅允许来自客户端应用程序域的调用。

0
投票

Dark Sky API docs说它不允许CORS。因此,您无法从其服务器获取客户端代码的数据。因此,在PHP或其他平台上创建一个proxy server,它将进行api调用并生成JSON格式的响应。

© www.soinside.com 2019 - 2024. All rights reserved.