JS使用fetch获取以太坊地址余额报Invalid name错误如何解决
问题修复方案
错误根源
两次报错的核心原因是请求头的键名错误包含了多余的冒号:
- HTTP请求头的键名本身不包含冒号,冒号是请求报文里分隔头名称和头值的标记,不能写在键名字符串里
- 你写的
'X-API-Key:'属于非法的请求头名称,所以触发了Invalid name类型错误
修复后的完整代码
async function getBalance() { // 请提前确保address变量已完成正确赋值 document.getElementById("whoohoo").innerHTML = address; const response = await fetch('https://deep-index.moralis.io/api/v2/' + address + '/balance?chain=bsc', { method: 'GET', headers: { 'accept': 'application/json', // 去掉键名末尾多余的冒号即可 'X-API-Key': '替换为你自己的Moralis有效API Key' } }) const resData = await response.json() console.log(resData) // 如需格式化余额可自行转换:接口返回的balance单位为wei,除以1e18即可得到对应链的原生代币数量 }
附加注意事项
- 如果你需要查询以太坊主链的地址余额,把请求URL里的
chain=bsc改为chain=eth即可 - 请确保你填入的API Key有效,未过期或被平台限制访问
内容的提问来源于stack exchange,提问作者everything is wrong
相关产品推荐
相关产品推荐

