我代码中的axios post方法无法正常运行,导致控制台出现ERR_BAD_REQUEST错误。我不确定问题出在哪里。 “我正在关注”教程的编码员说这对他有用,但对我不起作用。我们有相同的代码,因为我已经检查过多次了!
const onSubmit = async (values: z.infer<typeof formSchema>) => {
try {
setLoading(true);
const response = await axios.post('/api/stores', values);
console.log(response.data)
} catch (error: any) {
console.error(error);
} finally {
setLoading(false);
}
};
api>商店>route.ts
import prismadb from "@/lib/prismadb";
import { auth } from "@clerk/nextjs";
import { NextResponse } from "next/server";
export async function POST(
req: Request,
) {
try {
const { userId } = auth();
const body = req.json();
const { name }: any = body;
if(!userId) {
return new NextResponse("Unauthorized", { status: 401 });
}
if(!name) {
return new NextResponse("Name is required", { status: 400 });
}
const store = await prismadb.store.create({
data: {
name,
userId
},
});
return NextResponse.json(store);
} catch(error) {
console.log('[STORES_POST]', error);
return new NextResponse("Internal error", { status: 500 });
}
};
由于我的困惑,我还没有尝试过任何事情。
正如发帖者通过评论所确认的,以下代码更改解决了该问题。只是想总结解决方案并在这里分享给将来可能遇到相同问题的更多人。
您应确保
Axios
请求格式正确并发送 JSON
。因此,在 onSubmit()
函数中,使用以下内容更新 axios
代码块:
const response = await axios.post('/api/stores', JSON.stringify(values), {
headers: {
'Content-Type': 'application/json',
},
});