vue之web3.js开发之错误:Uncaught (in promise) TypeError: Cannot read property 'node
这个问题的意思就是找不到node节点的意思!
init_web3_1_0_version () {
this.web3 = new Web3( Web3.givenProvider || new Web3.providers.HttpProvider( 'http://127.0.0.1:8545
' ) );
console.log( 'this.web3', this.web3 );
}
原因分析:web3.js 1.0版本中 Web3.givenProvider浏览器区块链网络(如:Metamask)如果浏览器安装了Metamask插件,那么会自动识别,如果浏览器没有安装那么Web3.givenProvider为null,此时才会执行new Web3.providers.HttpProvider( 'http://127.0.0.1:8545' ),那么答案很显然就是 就是你的自定义网络new Web3.providers.HttpProvider( '/8545' ) 没有成功!
明明已经开启了http://127.0.0.1:8545网络,也能ping成功,为什么却程序链接不成功呢?尤其是在Vue里边,问题就是尼玛跨域问题! Vue这种框架跨域必须配置,否则无法连接其他网络!
找到你的程序,解决跨域问题即可!(Vue的跨域自行百度)
xml-http-request.js?37da:91 Uncaught (in promise) TypeError: Cannot read property 'node' of undefined
at new XMLHttpRequest (xml-http-request.js?37da:91)
at ProvidersModuleFactory.createXMLHttpRequest (web3-providers.umd.js?d5f4:1223)
at eval (web3-providers.umd.js?d5f4:728)
at Promise (<anonymous>)
at HttpProvider.sendPayload (web3-providers.umd.js?d5f4:727)
at HttpProvider.send (web3-providers.umd.js?d5f4:705)
at RequestManager.send (index.js?176c:132)
at sendRequest (index.js?63fa:560)
at Eth.send [as getBlock] (index.js?63fa:581)
at eval (constructorMethods.js?236c:171)
vue.runtime.esm.js?2b0e:8391 Download the Vue Devtools extension for a better development experience: