无法连接到节点 http://localhost:8545
Posted
技术标签:
【中文标题】无法连接到节点 http://localhost:8545【英文标题】:Couldn't connect to node http://localhost:8545 【发布时间】:2018-12-26 20:27:25 【问题描述】:问题截图: 我的系统目录中的 Web3.min.js 路径!
Web3.min.js 是从我浏览器的文件夹中加载的
在 index.html 文件所在的同一文件夹中复制 web3.min.js。
添加代码
节点信息! 我面临以下两个问题:
加载资源失败:web3.min.js:1 net::ERR_CONNECTION_REFUSED
错误:。
我的 Index.html 文件是
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<link rel="stylesheet" type="text/css" href="main.css">
</head>
<body>
<div class="container">
<h1>Coursetro Instructor</h1>
<h2 id="instructor"></h2>
<label for="name" class="col-lg-2 control-label">Instructor Name</label>
<input id="name" type="text">
<label for="name" class="col-lg-2 control-label">Instructor Age</label>
<input id="age" type="text">
<button id="button">Update Instructor</button>
</div>
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js"></script>
<script>
if (typeof web3 !== 'undefined')
web3 = new Web3(web3.currentProvider);
else
// set the provider you want from Web3.providers
web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545"));
web3.eth.defaultAccount = web3.eth.accounts[0];
var CoursetroContract = web3.eth.contract([
"constant": false,
"inputs": [
"name": "_fName",
"type": "string"
,
"name": "_age",
"type": "uint256"
],
"name": "setInstructor",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
,
"constant": true,
"inputs": [],
"name": "getInstructor",
"outputs": [
"name": "",
"type": "string"
,
"name": "",
"type": "uint256"
],
"payable": false,
"stateMutability": "view",
"type": "function"
]);
var Coursetro=CoursetroContract.at('0x95712aa4ff464e56f76af55da6239a368c459ed4');
console.log(Coursetro);
</script>
</body>
</html>
【问题讨论】:
错误信息是不言自明的。您是在尝试连接到本地提供商还是通过 MetaMask?如果您使用的是本地提供商,您能否发布有关何时启动节点的信息? 是的,我正在尝试连接到本地提供商 localhost:8545。不使用元掩码,这里是节点信息的截图。(附件) 【参考方案1】:我有这个问题,我解决了。
解决方案:
您必须在文件夹项目中创建 index.html 和 main.css,而不是在 node_modules 文件夹中。
【讨论】:
在屏幕短片和代码中可以看到她的index.html和main.css 你提到的文件不在node_modules里面。【参考方案2】:如果您连接到本地节点:
您已包含 jquery cdn,同样包含来自链接 web3_cdn 的 web3。 您可以从链接下载一个文件,然后通过
在您的 web 应用程序中连接该文件<script type="text/javascript" src="web3.min.js"></script>
并确保在您运行应用程序时您的元掩码已禁用。 Metamask 将 web3 对象直接注入您的应用程序。
参考其他答案link
【讨论】:
嗨,感谢您的帮助,但我不明白为什么我的脚本无法找到 web3.min.js,尽管它是在包中下载并存在于我的系统中并且我已经给出了它正如您在我的 index.html 文件中看到的那样,我的脚本的正确路径 你可以看到我附上的截图 尝试以下操作 1. 将web3.min.js
复制到与 index.html 相同的文件夹中 2. 禁用元掩码 如果从文件夹加载 web3.min.js,请检查浏览器源
我在元掩码禁用时尝试了您建议的解决方案。我已经检查了 Web3.min.js 是从浏览器源中的文件夹加载的。但对我来说一切都不顺利。 :( 你可以看到上面的截图。
您使用的是哪个以太坊客户端?而且我在您的代码中看不到这一行。
对不起,我对它很陌生,但我想我正在使用 Ethereum TestRpc。你可以看到我脚本中添加的代码行的屏幕截图。以上是关于无法连接到节点 http://localhost:8545的主要内容,如果未能解决你的问题,请参考以下文章
无法让 jabber 客户端连接到在 localhost 上运行的 ejabberd
棱镜错误:无法连接到 http://localhost:4466 的服务器
Tomcat 在 Eclipse 中启动但无法连接到 http://localhost:8085/
Prisma 绑定无法连接到 prisma 服务器。请求 http://localhost:4466/ 失败,原因:连接 ECONNREFUSED 127.0.0.1:4466