2

我在 ReactJs 中有一个项目,我使用 web3.js 从智能合约中读取数据,并且我使用了 Infura 提供的以太坊客户端。问题是,当我在 Google Chrome 中访问我的项目时,一切正常。如果我通过 Microsoft Edge 访问我的项目,我会收到以下错误:

SEC7120:[CORS] 源“ http://localhost:3000 ”在“ https:// ”的跨源资源的 Access-Control-Allow-Origin 响应标头中未找到“ http://localhost:3000 ” rinkeby.infura.io/v3/censored '。

我查看了其他帖子,发现这个并没有解决我的问题。

我注意到的其他事情:如果我从 Internet Explorer 访问该网站,我可以正常读取数据。如果我使用谷歌浏览器而不使用 MetaMask,我可以正常读取数据。如果我激活 MetaMask 并且我没有选择正确的 infura 网络 (Ropsten) 并且我选择了例如 Main Network,它不会按预期工作

更新:似乎这不是我这边的问题,而是来自 Infura。我询问他们是否 Microsoft Edge 是他们服务的限制,以及他们是否愿意用它做任何事情。

4

1 回答 1

3

啊,好旧的 CORS 问题。由于您无法控制服务器的 CORS 设置,因此您最好创建一个小型服务器端应用程序,该应用程序将代表您的 react 应用程序代理这些请求。

于 2018-10-12T20:07:15.550 回答