CORS 策略已阻止从来源 'http://localhost:3000' 访问位于 'https://sua-ap-web-1.agora.io/api/v1?action=stringuid' 的 XMLHttpRequest

Access to XMLHttpRequest at 'https://sua-ap-web-1.agora.io/api/v1?action=stringuid' from origin 'http://localhost:3000' has been blocked by CORS polic

我正在使用 create-react-app 构建一个利用 Agora API 的应用程序。在尝试这样做时,我在浏览器的控制台中收到“请求的资源上不存在 'Access-Control-Allow-Origin' header”错误。我知道这是由 CORS 引起的,并且 API 没有 Access-Control-Allow-Origin header.

我尝试使用以下方法处理它:https://www.telerik.com/blogs/dealing-with-cors-in-create-react-app 添加

"proxy": "https://sua-ap-web-1.agora.io"

到 packaage.json,但这不起作用。我正在考虑按照 here 所述设置一个 Node.JS 代理服务器,但不知道它是否可以解决问题,我是否应该花时间去那个兔子洞,或者是否有更好的备选方案。

我确实注意到 @plutoless 在 agora 的 github 上提到 API 调用应该从服务器端进行,而不是像 React 或 AngularJS 这样的客户端。

所以问题是,有没有一种方法可以使用 ReactJS 进行 API 调用而无需设置代理服务器?

终于成功了,感谢@AkshatGupta 帮助我找出问题所在。我从

切换了我正在使用的 sdk
"agora-rtc-sdk": "^3.4.0"

使用

"agora-rtc-sdk-ng": "^4.0.1"

它开始完美运行。我还不明白这个问题的根本问题,但这对我有用。请注意,我不必像问题中提到的那样在 package.json 中设置代理服务器或设置代理字段。