【发布时间】:2018-07-21 13:01:30
【问题描述】:
我正在使用 reactjs 构建一个仅限前端的基本天气应用程序。对于 API 请求,我使用 Fetch API。 在我的应用程序中,我从找到的simple API 获取当前位置 并将位置作为 JSON 对象提供。但是当我通过 Fetch API 请求它时,我收到了这个错误。
Failed to load http://ip-api.com/json: Request header field Access-Control-Allow-Origin is not allowed by Access-Control-Allow-Headers in preflight response.
所以我搜索并找到了多种解决方案来解决这个问题。
- 在 Chrome 中启用 CORS 可以解决错误,但是当我在 heroku 上部署应用程序时,如何通过移动设备访问它而不会遇到相同的 CORS 问题。
- 我找到了一个proxy API,它启用了 CORS 请求。但由于这是一个位置请求,这给了我代理服务器的位置。所以这不是一个解决方案。
- 我已经完成了这个Stackoverflow question 并将标头添加到我的http 请求的标头中,但它并没有解决问题。 (仍然会出现同样的错误)。
那么我怎样才能永久解决这个问题呢?我可以用来解决 Fetch API 中 http 请求的 CORS 问题的最佳解决方案是什么?
【问题讨论】:
-
该服务器配置为不允许您从浏览器 (CORS) 获取它。你可以用 cURL 得到它一整天。如果您无法让他们在其 Web 服务器上添加 CORS 标头,请重新考虑您的想法。
标签: javascript reactjs http cors fetch-api