我目前正在自学如何使用无头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不允许这样做?
1条答案
按热度按时间c8ib6hqw1#
显然是Node的版本导致了这个问题。我用的是v19,切换到v16,现在可以用了。