javascript 使用Nextjs 13和crafterCMS获取数据

j2cgzkjk  于 2023-05-27  发布在  Java
关注(0)|答案(1)|浏览(95)

我目前正在自学如何使用无头CMS(CrafterCMS)在Next.js 13应用程序文件夹中获取数据。
如果我尝试在客户端获取数据,一切正常:

"use client"

export default function Home() {

  const [model, setModel] = useState<any>();
  
  useEffect(() => {
    (async () => {
    const model = await getModel();
    setModel(model);
    })();
  } , []);
  
  if(model) {
    return (
      <p>Works!</p>
    );  
  }
  
}

但是当我在服务器端组件上尝试相同的操作时,它会给出一个“错误:fetch failed”错误:

export default async function Home() {
    const model = await getData();
    return (
        <p>ERROR!</p>
    )
}

getData只是一个普通的await fetch('...')函数:

async function getData() {
  const model = await fetch(
    "http://localhost:8080/api/1/site/navigation/tree.json?crafterSite=test&depth=1&url=%2Fsite%2Fwebsite"
  );
  return model.json();
}

我是否错过了某种配置?还是crafter不允许这样做?

c8ib6hqw

c8ib6hqw1#

显然是Node的版本导致了这个问题。我用的是v19,切换到v16,现在可以用了。

相关问题