当我尝试从 localhost 登录我的网站时,它工作正常。但是,当我尝试从我的生产版本中执行相同操作时,它不起作用。我想我知道为什么,但我不知道如何解决它。当我尝试从 prod 构建(托管在 Vercel 上)登录时,它不会发布到 https://fs-dev.vercel.app/api/auth/login,而是发布到 https://fs-dev.vercel.app/undefined/api/auth/login。我不知道为什么它会在 prod 版本中添加和 /undefined/
。 (我正在使用 Next.js 及其 API 路由)。我已经检查过,baseUrl
是正确的,因为 prod 构建能够获取数据但不能 POST 数据。
这是我的帖子请求代码:
fetchData.js
export const postData = async (url, post, token) => {
const res = await fetch(`${baseUrl}/api/${url}`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': token
},
body: JSON.stringify(post)
})
const data = await res.json()
return data
}
登录.js
const res = await postData('auth/login', userData);
答案 0 :(得分:0)
问题是,客户端需要环境变量 BASE_URL。为了解决这个问题,我在 BASE_URL 前面添加了 NEXT_PUBLIC_