我在用Next。js 13的API路由我向路由发送一个字符串数组,我希望它在响应中作为返回值输出。然而,我得到的所有我得到下面的错误。在Chrome调试器中,我也没有看到实际应该发送的数组。如果我在FormData中将整个内容更改为一个简单的字符串,也不会发送任何内容
const sendToAPI = () => {
const data = new FormData();
data.append("urls", JSON.stringify(downloadUrls));
fetch("/api/uploadToMongoDB", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify(data),
})
.then((res) => {
console.log(res);
})
.catch((e) => console.log(e));
};
/API/uploadToMongoDB.ts
export default async function handler(
req: NextApiRequest,
res: NextApiResponse
) {
if (req.method !== 'POST') {
res.status(405).send({ message: 'Only POST requests allowed' })
return
}
const body = await JSON.parse(req.body)
res.status(200).json({ message: `You submitted the following data: ${body}` })
}
错误- pages\API\uploadToMongoDB。ts(14:30)@ parse error - Error [SyntaxError]:JSON中位置1处的意外标记o
1条答案
按热度按时间w46czmvw1#
试着用
而不是使用FormData。FormData不是JSON,因此无法进行转换。如果需要在实现中包含FormData,请考虑使用
如果还是不行,请告诉我!