我在ReactJs中有一个项目,使用web3.js从智能合约中读取内容,还有一个由Infura提供的以太坊客户端。问题是,当我在Google Chrome浏览器中访问我的项目时,一切正常。
如果我通过Microsoft Edge访问我的项目,则出现以下错误:


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


我查看了其他帖子,发现this one不能解决我的问题。

我注意到的其他事情:
如果从Internet Explorer访问该网站,则可以正常读取数据。如果我使用Google Chrome浏览器而不使用MetaMask,则可以正常读取数据。如果我激活MetaMask而未选择正确的Infura网络(Ropsten),而我选择了“主网络”,则该网络将无法正常工作

更新:
在我看来,这不是问题,而是来自Infura。我询问他们是否Microsoft Edge是他们服务的限制,以及他们是否愿意对此做任何事情。

最佳答案

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

07-24 17:55