我使用nextjs作为我的前端,使用fast api作为我的后端。当我在前端运行此代码时:
async function test() {
const response = await fetch("http://127.0.0.1:8000/token", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({
username: "johndoe",
password: "secret",
}),
}).then((res) => res.json());
return {
props: { data: response },
};
}
useEffect(() => {
const data = test();
console.log(data);
}, []);
我得到了一个兑现的承诺,它是一个长度为2的数组,其中每个条目是:
loc: (2) ['body', 'username']
msg: "field required"
type: "value_error.missing"
并在控制台中显示错误消息:“POST http://127.0.0.1:8000/token 422(UnProcedable Entity)”。
我的后台可以在这里找到https://github.com/ColeBlender/oauth2-test。几天来,我一直在试图弄清楚这个问题,但一直没有找到答案,所以我非常感激任何帮助。
1条答案
按热度按时间ylamdve61#
我们可以通过FETCH使用FormData来发送表单数据。如果我们不传递任何内容类型标头,那么它将使用‘MultiPart/Form-Data’
另一种方法是将URLSearchParams与FormData一起使用,并将Content-Type设置为‘application/x-www-form-urlencode’