Reactjs 在CreateReact应用程序中调用axios时,公共API给了我CORS错误,但在Chrome和Postman中一切正常

Reactjs 在CreateReact应用程序中调用axios时,公共API给了我CORS错误,但在Chrome和Postman中一切正常,reactjs,cors,axios,fetch,Reactjs,Cors,Axios,Fetch,请原谅我明显犯下的错误 我了解CORS,它的使用方式和原因。但在这个例子中,我忽略了显而易见的东西 我正在尝试访问一个公开可用的API,它应该可以正常工作(我得到了保证) 如果我在Chrome或Postman中找到了端点,那么一切都很好:返回了美妙的JSON 当我尝试在我的create react应用程序的组件安装中使用axios执行相同操作时,我会收到一个CORS错误,特别是 Access to XMLHttpRequest at 'http://some-interesting-url/su

请原谅我明显犯下的错误

我了解CORS,它的使用方式和原因。但在这个例子中,我忽略了显而易见的东西

我正在尝试访问一个公开可用的API,它应该可以正常工作(我得到了保证)

如果我在Chrome或Postman中找到了端点,那么一切都很好:返回了美妙的JSON

当我尝试在我的create react应用程序的
组件安装中使用
axios
执行相同操作时,我会收到一个CORS错误,特别是

Access to XMLHttpRequest at 'http://some-interesting-url/sub-url?blabla=blip&foo=bar' from origin 'http://localhost:3000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

我没能理解的是什么?从我这边我能做些什么吗?(我无法控制服务器)

邮递员应用程序不是浏览器,因此不受CORS规则的约束。在浏览器中,尝试直接访问URL也不会触发跨源请求共享策略。根据定义,CORS只会影响从一个网页的后台JS代码到另一个不在同一域名上托管的网页或API的“跨源”请求

根据发布的错误,相关API未发送
Access Control Allow Origin
头。如果可以更改API,则应将标题添加到响应中(使用值“*”或域名)。但是,如果不可能,则需要通过您拥有的web服务器路由请求,并在其中包含此标头。这种代理确实可以像代理一样工作,尽管是针对特定的用例


如果已经有一些服务器端应用程序在运行,只需向应用程序添加另一个端点即可。对这个新端点的调用应该触发“公共API”调用,并将响应发送回客户端。因为服务器端程序(例如PHP/Python/NodeJS)永远不会是浏览器,所以它们不会面临CORS问题。如果原始网页也是从同一web服务器加载的,则可以跳过响应标题。

尝试在package.json中使用
proxy
键和值作为URL@VinayakBagaria——谢谢。我试过了,用他们的服务器作为URL值,但什么也没做。非常感谢——这很奇怪,因为这个API是前端React位置编码测试的一部分,我只是在处理API请求。如果它是一个完整的堆栈角色,我会说,好吧,这是一个棘手的情况来解决,但很难相信这是简短的一部分。。。。