Reactjs无法读取智能合约?

时间:2018-10-12 20:02:23

标签: javascript reactjs access-control web3js cross-origin-read-blocking

我在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是其服务的限制,以及他们是否愿意对此做任何事情。

1 个答案:

答案 0 :(得分:3)

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