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

Next.js 14服务端调用Alchemy API出现Referrer无效URL错误

解决Next.js 14服务端调用Alchemy API的Referrer错误

这个错误的核心原因是:Alchemy SDK在服务端环境下默认设置的referrer值为"client",而Node.js环境中Next.js依赖的undici(Fetch实现)不接受该值作为合法URL,导致构造Request时抛出异常。

解决方案

修改Alchemy的初始化配置,通过fetchOptions手动设置合法的referrer或禁用referrer发送:

import { Alchemy, Network } from "alchemy-sdk";

const settings = {
  apiKey: "your-api-key", // 建议存到环境变量中,比如process.env.ALCHEMY_API_KEY
  network: Network.ETH_MAINNET,
  // 添加fetchOptions配置修复referrer问题
  fetchOptions: {
    // 方案1:设置为空字符串,不发送referrer
    referrer: "",
    // 或方案2:设置referrerPolicy为no-referrer,效果一致
    // referrerPolicy: "no-referrer"
  },
};

// 服务端组件可直接异步调用(无需useEffect)
async function ServerComponent() {
  const alchemy = new Alchemy(settings);
  const tokenBalances = await alchemy.core.getTokenBalances('0x2EeEa57cD51DF77163Fae7A056053f402d8E17CB');
  
  return (
    <div>
      <pre>{JSON.stringify(tokenBalances, null, 2)}</pre>
    </div>
  );
}

export default ServerComponent;

额外注意

  • 服务端组件无需使用useEffect,可直接编写异步代码等待API响应。
  • 不要硬编码API密钥,建议存储在.env.local文件中,通过process.env.ALCHEMY_API_KEY读取,避免密钥泄露。

内容的提问来源于stack exchange,提问作者Quốc Cường

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 11:02:19