You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NextJS 14.1.0 Server Action报错TypeError: Body is unusable求助

解决NextJS 14.1.0中Server Action的TypeError: Body is unusable问题

问题根源

你在AccountVeficationAction函数里连续两次调用了await response.json()——HTTP Response的body是一次性可读流,第一次调用json()已经把流消费完毕,第二次再尝试读取就会触发"Body is unusable"错误。

修复代码

把响应数据先存入变量,再复用这个变量即可解决问题,修改后的/src/app/auth/_utils/actions/action.ts代码如下:

export const AccountVeficationAction = async (body: any) => {
  try {
    const response = await fetch(`${BASEURL}/auth/confirm-account`, {
      method: "POST",
      headers: {
        "Content-Type": "application/json",
        // Add other necessary headers (e.g., authorization)
      },
      body: JSON.stringify(body),
    });
    // 先将响应数据存入变量,避免重复读取body流
    const responseData = await response.json();
    console.log(responseData);
    return responseData;
  } catch (error) {
    console.log(error);
    return {
      success: false,
      message: "Something went wrong!",
    };
  }
};

补充说明

  • Response对象的json()、text()、blob()等读取body的方法都是一次性的,调用后body流会被关闭,无法再次读取
  • 若需要多次使用响应内容,必须先将结果存储到变量中复用

内容的提问来源于stack exchange,提问作者Musiur Alam Opu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 22:39:56