调用Moralis Web3API的getNFTsForContract返回400错误是什么原因
问题排查方案
1. chain参数格式错误(最高概率)
Moralis Web3API的chain参数要求传入十六进制字符串格式,你当前传入的是数字4,需要改为带0x前缀的字符串"0x4"。
如果networkId是从钱包侧获取的数字类型变量,可通过如下代码转换格式:
const formattedChain = `0x${networkId.toString(16)}`
替换你调用接口时传入的chain参数即可。
2. 变量加载时序问题
确认发起接口调用时,user变量已经完成赋值,不是undefined或空值:
- 如果用户地址是异步登录后获取的,需要增加判断逻辑,等用户登录完成、地址返回后再触发
getNFTsForContract调用,避免参数为空导致的400错误。
3. SDK版本兼容性问题
确认你使用的Moralis SDK版本和接口要求匹配:
- v1版本后的Moralis对部分Web3API的调用传参方式做了调整,如果你的项目是老版本代码迁移过来的,建议锁定SDK版本为你开发时参考的对应版本,避免迭代带来的接口变更问题。
4. 后台配置校验
登录你的Moralis管理后台检查对应应用配置:
- 确认你使用的AppID对应服务器已开启Rinkeby链(链ID4)的支持
- 确认没有设置IP白名单、API调用频率限制等规则拦截你的请求
内容的提问来源于stack exchange,提问作者Patrick Collins
相关产品推荐
相关产品推荐

