reactjs 从服务器重定向后,NextJS失败,UND_ERR_REQ_CONTENT_LENGTH_MISMATCH

dffbzjpn  于 2023-05-23  发布在  React
关注(0)|答案(1)|浏览(154)

bounty还有4天到期。回答此问题可获得+50声望奖励。pguardiario希望引起更多的注意这个问题。

这是我的第一个NextJs应用程序,我使用serverActions实验特性来管理表单提交并通过服务器端处理。
下面是我的代码:

import { redirect } from "next/navigation";
import { cookies } from 'next/headers'
import { authService } from "@/services";

async function logoutUser() {
  "use server"
  
  authService.logout();
  cookies().delete('currentUser');
  redirect('/');
}

export default () => {
  return <>
    <form action={logoutUser} className="flex flex-col gap-3">
      <button className="btn btn-primary normal-case w-full" type="submit">Logout</button>
    </form>
  </>
}

字符串
这里的想法是,我想重定向回主页后,用户注销。
然而,每当代码执行时,我都会得到以下错误:

failed to get redirect response TypeError: fetch failed
    at Object.fetch (node:internal/deps/undici/undici:11576:11) {
  cause: RequestContentLengthMismatchError: Request body length does not match content-length header
      at write (/Users/robison/Documents/Development/prototypes/watchlist-app/node_modules/next/dist/compiled/undici/index.js:1:67105)
      at _resume (/Users/robison/Documents/Development/prototypes/watchlist-app/node_modules/next/dist/compiled/undici/index.js:1:66726)
      at resume (/Users/robison/Documents/Development/prototypes/watchlist-app/node_modules/next/dist/compiled/undici/index.js:1:65413)
      at connect (/Users/robison/Documents/Development/prototypes/watchlist-app/node_modules/next/dist/compiled/undici/index.js:1:65301) {
    code: 'UND_ERR_REQ_CONTENT_LENGTH_MISMATCH'
  }
}


知道我哪里做错了吗

snz8szmq

snz8szmq1#

您可以尝试使用startTransition并从内部调用logoutUser。如果这不起作用,你可以尝试this article,它讨论了关于这个确切问题的一些修复,从你的错误日志来看,这个问题显然像是一个与undici模块相关的错误。

相关问题