Ошибка при подключении к локальному экземпляру Ganache с помощью Web3.js - PullRequest
0 голосов
/ 30 сентября 2019

У меня есть веб-приложение, работающее на локальном сервере Node.js (порт 3000) и экземпляр Ganache, работающий на порту 7545. Всякий раз, когда я пытаюсь подключиться к экземпляру Ganache с помощью Web3.js, я получаю ошибку CORS из браузера.

Node.js - v8.11.3
Ganache - v1.2.3
Web3 - web3.min.js (v0.20.7)
OS - Windows 10

Я пытался установить расширение Chrome, которое отключает CORS, но безрезультатно.

Этот код я использую для создания и подключения объекта Web3:


    var web3;
    if (typeof web3 !== 'undefined') {
        web3 = new Web3(web3.currentProvider);
    } else {
        web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:7545"));
    }

Это сообщение об ошибке, которое я получаю от Chrome всякий раз, когда нажимаю на кнопку, которая выполняет соединение между Web3 и Ganache:

Access to XMLHttpRequest at 'http://localhost:7545/' from origin 'http://localhost:3000' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: The value of the 'Access-Control-Allow-Origin' header in the response must not be the wildcard '*' when the request's credentials mode is 'include'. The credentials mode of requests initiated by the XMLHttpRequest is controlled by the withCredentials attribute.
inpage.js:1 Uncaught Error: CONNECTION ERROR: Couldn't connect to node http://localhost:7545.
    at Object.InvalidConnection (inpage.js:1)
    at o.send (inpage.js:1)
    at a.send (inpage.js:1)
    at w.accounts (inpage.js:1)
    at HTMLButtonElement.<anonymous> (main.js:250)
    at HTMLButtonElement.dispatch (jquery.min.js:3)
    at HTMLButtonElement.r.handle (jquery.min.js:3)
InvalidConnection @ inpage.js:1
jquery.min.js:4 POST http://localhost:3000/ 500 (Internal Server Error)

Есть идеи? Большое спасибо!

1 Ответ

0 голосов
/ 01 октября 2019

в файле package.json добавить прокси сервера node.js

  "proxy": "http://localhost:5000"
...