Json-Rpc
使用 axios 從 javascript 呼叫 JSON RPC
我想從反應組件中通過 JSON RPC 呼叫 geth 方法。我試過這個,但我總是得到錯誤:405(不允許的方法)
這是我的程式碼:
try { const response = await axios.post('http://localhost:8501', { jsonrpc: '2.0', id: + new Date(), method: 'eth_accounts', params: { }, }, { headers: { 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*' }, }) console.log(response.data.result.address) console.log(response.data.result.publicKey) console.log(response.data.result.wif) console.log(response.data.result) } catch(error) { console.error(error) }
請求必須是 POST 還是 GET?
我的 geth 實例使用以下參數執行:
geth --datadir node1/ --syncmode 'full' --port 30311 --rpc --rpcaddr 'localhost' --rpcport 8501 --rpcapi 'personal,db,eth,net,web3,txpool,miner' --bootnodes 'enode://<enode@<127.0.0.1:30310' --networkid 1515 --gasprice '1' -unlock '0x0' --mine
非常感謝您的幫助
請求必須是 POST 還是 GET?
他們應該是
POST
。
GET
不包含主體。如果從瀏覽器訪問 RPC,則需要使用適當的域集啟用 CORS。參考
JSON RPC 也可以使用
admin.startRPC(addr, port)
命令從 geth 控制台啟動。你應該表示
--rpccorsdomain "THE CORS DOMAINS GOES HERE"
.從客戶端傳遞不會在伺服器上
Access-Control-Allow-Origin
啟用CORS
。