【发布时间】:2018-10-12 20:02:22
【问题描述】:
我在 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 访问该网站,我可以正常读取数据。如果我使用谷歌浏览器而不使用 MetaMask,我可以正常读取数据。如果我激活 MetaMask 并且我没有选择正确的 infura 网络 (Ropsten) 并且我选择了例如 Main Network,它不会按预期工作
更新: 似乎这不是我这边的问题,而是来自 Infura。我询问他们是否 Microsoft Edge 是他们服务的限制,以及他们是否愿意对它做任何事情。
【问题讨论】:
-
这是一个 CORS 错误。它与 reactjs 无关,它只是意味着您查询的基本 url 与您查询的基本 url 不同,这是您的目标不允许的。没有看到任何代码很难说什么。
标签: javascript reactjs access-control web3js cross-origin-read-blocking