在 Electron 中捆绑的 React 应用程序中使用 axios 的 API 调用返回 400

IT技术 reactjs electron axios
2021-05-03 11:36:22

只是一个简单的问题:

我正在构建一个 React/Electron 应用程序,在 React 应用程序中,我有一些对 API 的异步/等待调用。这些调用是使用 axios 进行的,并且在开发过程中可以正常工作。

当应用程序封装在 Electron 中时,请求会返回“400 Headers required”错误。当运行开发版本的 React 时,它会正确调用 api。

知道为什么会这样吗?

我遇到了 WebRequest Electron 方法https://electronjs.org/docs/api/web-request看起来我可以拦截请求并更改标头,但必须这样做似乎很奇怪。

感谢您的帮助!🙌

1个回答

看起来问题出在我的 CORS 代理https://cors-anywhere.herokuapp.com/ 上

我调用的第 3 方 API 没有启用 CORS,当我在 React 中进行本地开发时,我不得不使用 CORS 代理。

话虽如此,当我将应用程序捆绑在 Electron 中时,对https://cors-anywhere.herokuapp.com/的调用返回“400 Header required”,因为代理处理与 CORS 无关的调用。如果它没有像这样响应,您可以将其用作通用代理。

因此,从我的链接中删除 CORS 代理 url 使应用程序在 Electron 中运行。按照这个逻辑,我猜这意味着默认情况下,来自 Electron 内部的渲染 API 调用(来自 React)不受 CORS 的影响。