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

时间:2017-12-30 08:04:42

标签: reactjs github-pages allow-same-origin

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

  

否'访问控制 - 允许 - 来源'标题出现在请求的上   资源。起源' https://boka44.github.io'因此是不允许的   访问。如果不透明的响应满足您的需求,请设置请求   模式为' no-cors'在禁用CORS的情况下获取资源。

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

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

任何帮助都将深表感谢。

2 个答案:

答案 0 :(得分:2)

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

这里有2个选项:

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

答案 1 :(得分:0)

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