VERBINDUNGSFEHLER: Es konnte keine Verbindung zum Knoten http://localhost:8545 hergestellt werden

Ich habe geth mit unten begonnen:

geth --rpc --rpccorsdomain * --rpcport 8545 --rpcapi personal,web3,eth,net

und das ist mein web3.js-Code:

<script src="/bower_components/web3/dist/web3.min.js"></script>
<script type="text/javascript">
    function send() {
        if (typeof web3 !== 'undefined') {
            web3 = new Web3(web3.currentProvider);
        } else {
            web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545"));
        }
        if(!web3.isConnected()) {
            console.log('not-connected');
        } else {
           console.log('connected');
        }
    }
</script>

zuerst console.log sagte "not-connected"und bekam einen Fehler:Error: CONNECTION ERROR: Couldn't connect to node http://localhost:8545.

Überprüfen Sie mit netstat cmd, ob der Port geöffnet ist
ja es ist geöffnet. tcp 0 0 127.0.0.1:8545 0.0.0.0:* LISTEN 1521/geth
versuchen Sie 127.0.0.1 statt localhost
habe aber den gleichen fehler
Installieren Sie Metamask und prüfen Sie, ob es sich mit Ihrem Knoten im Localhost-Modus verbindet
Setzen Sie einfache Anführungszeichen um * geth --rpc --rpccorsdomain '*' --rpcport 8545 --rpcapi personal,web3,eth,netIch versuche Ihren Code und es gab mir einen domänenübergreifenden Fehler mit dem '*' alles funktioniert gut, ich bekomme die verbundene Nachricht

Antworten (1)

Nur ein kleiner Fehler der Bereiche. Ihre web3-Variable verlässt den Geltungsbereich, sobald sie deklariert wird.

<script src="/bower_components/web3/dist/web3.min.js"></script>
<script type="text/javascript">
    var web3;
    function send() {
        if (typeof web3 !== 'undefined') {
            web3 = new Web3(web3.currentProvider);
        } else {
            web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545"));
        }
        if(!web3.isConnected()) {
            console.log('not-connected');
        } else {
           console.log('connected');
        }
    }
</script>

var web3Beachten Sie, dass ich explizit außerhalb der Funktion deklariert habe

funktioniert nicht. Können Sie bitte sagen, wie ich eine Remote-URL verbinden kann? zB: web3 = new Web3(new Web3.providers.HttpProvider(" 110.249.35.167:8545" ));
const web3 = new Web3(new Web3.providers.HttpProvider(' 110.249.35.167:8545' ));