标题给出了几乎所有的东西,但为了完整起见,我将在这里重复一遍。我对Ethereum很陌生,并且正在开发一个通过前端访问的Ethereum,它是用Javascript编写的,并使用Web3与Rinkeby通信。正如我听说的那样,file://,无法连接任何托管在file:///C:/xampp/htdocs/voterScreen.html)上的站点,我将前端托管在XAMPP服务器上(file:///C:/xampp/htdocs/voterScreen.html)用于测试目的)。现在我仔细想想,它仍然在文件中运行://.也许这就是导致这个问题的原因?
我的实际前端工作得很好,能够阅读我的合同,并且所有的方法都能正常工作。只有一个小问题--我不能给链子写信,因为我的Web3不是从Metamask注入的,即使我已经登录并且正在搜索它。我的前端有一段标准代码:
if (typeof web3 !== 'undefined') {
web3 = new Web3(web3.currentProvider);
console.log("Metamask logged into successfully");
} else {
console.log("Metamask NOT logged into successfully");
// set the provider you want from Web3.providers
***(other attempts at finding provider)***
}
(rest of code) 事实上,每当我运行这个程序时,我都会看到"Metamask未成功登录“,这证实了Metamask没有被注入。这是一个小问题,因为我需要的信息签署投票事务,我希望前端能够发送。作为参考,在控制台中显示了以下弃用警告:
[Deprecation] Synchronous XMLHttpRequest on the main thread is deprecated because of its
detrimental effects to the end user's experience. For more help, check
https://xhr.spec.whatwg.org/.我怀疑这与问题有关,但我只是以防万一。
不管是哪种情况,有没有人知道为什么MetaMask一直没有被注入?谢谢。
发布于 2018-04-20 22:19:40
出于安全考虑,元a不会将提供程序注入文件系统上托管的站点。要解决这个问题,您可以通过本地web服务器提供文件。要做到这一点,您必须通过服务器,即通过http访问文件。使用默认的XAMPP配置,尝试URL http://127.0.0.1/voterScreen.html。这将访问您的本地文件,但它将通过服务器传递,该服务器满足元请求的安全性要求。
https://ethereum.stackexchange.com/questions/46282
复制相似问题