我在后端使用 Django (DRF),在前端使用 Next.js 14。我可以毫无问题地上传小文件,但是当文件大小超过 100kb 左右时,API 请求就会陷入“待处理”状态。
这是表单在 page.js 中的外观:
const handleSubmit = async (e) => {
e.preventDefault();
const formData = new FormData();
if (avatar) formData.set("avatar", avatar);
formData.set("bio", bio);
const res = await fetch(`/api/auth/profile/`, {
method: "POST",
body: formData,
});
const updatedProfile = await res.json();
};
这是 api/route.js 文件的样子:
export async function POST(request, res) {
const access = await getAccessTokenServer();
if (!access)
return NextResponse.json(
{ detail: "Kullanıcı girişi bulunamadı" },
{ status: 401 }
);
const formData = await request.formData();
const response = await fetch(
`${process.env.API_URL}/api/users/me/profile_update/`,
{
method: "POST",
headers: { Authorization: `Bearer ${access}` },
body: formData,
}
);
当我直接从page.js文件向Django后端发送请求时,上传大文件没有问题。但是,当我将请求发送到 api/route 地址,然后发送到 Django 时,该文件不会到达 Django。
我尝试像这样设置 api 路由的配置。
export const config = {
api: {
bodyParser: {
sizeLimit: '10mb',
},
},
// Specifies the maximum allowed duration for this function to execute (in seconds)
maxDuration: 5,
}
我也有同样的问题,你用的是NGINX吗?