【发布时间】:2021-05-31 16:23:15
【问题描述】:
我正在使用 getStaticProps 和 getStaticPaths,我使用 fetch API 来调用 API 端点(在我的例子中是 Wordpress 无头 CMS)并设置动态路由的路径。当我运行npm dev 时,它工作正常,数据被正确获取。但是在构建时它会给出错误:
FetchError:https://abr.af/wp/wp-json/wp/v2/advisors 处的无效 json 响应正文原因:意外的令牌
我的代码在pages/advisor/[advisor].js
export const getStaticPaths = async () => {
const advisors = await getAdvisors()
const paths = advisors.map((each) => {
return {
params: { advisor: each.slug },
}
})
return {
paths,
fallback: false,
}
}
export const getStaticProps = async ({ params }) => {
const query = params.advisor
const advisors = await getAdvisors()
const advisor = advisors.find((advisor) => advisor.slug === query)
return {
props: {
advisor,
},
}
}
我在component/FetchData.js中的获取函数
export async function getAdvisors() {
const res = await fetch('https://abr.af/wp/wp-json/wp/v2/advisors', {
method: 'GET',
headers: {
// update with your user-agent
'User-Agent': '*',
Accept: 'application/json; charset=UTF-8',
},
})
const advisors = await res.json()
return advisors
}
export async function getExpertise() {
const res = await fetch('https://abr.af/wp/wp-json/wp/v2/expertise', {
method: 'GET',
headers: {
// update with your user-agent
'User-Agent': '*',
Accept: 'application/json; charset=UTF-8',
},
})
const expertise = await res.json()
return expertise
}
我用谷歌搜索了这个问题,发现我应该在我的请求中添加 User-Agent 标头,但这不能解决我的问题。
我是 Next.js 的新手,我不知道任何帮助的原因是什么。
【问题讨论】: