You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

客户端JavaScript调用web3获取以太坊交易数据报错求助

问题根因

你的代码报错核心是传错了Web3的RPC节点地址:

  • https://rinkeby.etherscan.io/tx/是Etherscan供用户浏览交易信息的网页路径,不是Web3兼容的JSON-RPC接口地址,向这个地址发起RPC请求,服务端返回的是HTML格式的错误页面,不符合Web3要求的JSON响应格式,因此抛出Invalid JSON RPC response错误。
  • 额外注意:Rinkeby测试网已于2023年正式关停,即使填对原Rinkeby官方RPC地址,也无法直接同步节点获取链上数据。
可行修复方案

方案1:测试Web3接口逻辑(替换为可用测试网)

如果只是验证Web3获取交易的代码逻辑,可替换为当前正常运行的Sepolia测试网公开RPC,修改后代码如下:

<!DOCTYPE html>
<html>
<head>
  <script src="https://cdn.jsdelivr.net/npm/web3@latest/dist/web3.min.js"></script>
  <script>
    async function getData(){
        // 填入Sepolia测试网公开RPC地址
        var web3 = new Web3(new Web3.providers.HttpProvider('https://rpc.sepolia.org'));
        // 替换为Sepolia链上真实存在的交易哈希即可获取对应数据
        var trans = await web3.eth.getTransaction('填入Sepolia有效交易哈希');
        console.log(trans);
    }
  </script>
</head>
<body>
<input type="button" value="GetData" id="myCheck" onclick="getData()">
</body>
</html>

注意:前端直接调用第三方RPC时,需确认节点服务配置了跨域允许规则,否则会被浏览器CORS策略拦截请求。

方案2:获取指定Rinkeby历史交易数据

如果目标就是拿到你提到的那笔Rinkeby交易的历史数据,不需要走Web3 RPC调用,直接请求Etherscan的开放API即可:

async function getTargetRinkebyTx() {
  const txHash = '0xd8b3c50230fb2f1d3d8586f5179b514e913dbe7868effd490a5743caaabda6b9';
  // 替换为你自己申请的Etherscan API Key即可发起请求
  const apiKey = '个人申请的Etherscan API Key';
  const response = await fetch(`https://api-rinkeby.etherscan.io/api?module=proxy&action=eth_getTransactionByHash&txhash=${txHash}&apikey=${apiKey}`);
  const result = await response.json();
  console.log(result.result);
}

内容的提问来源于stack exchange,提问作者Paul Butler

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 16:45:16