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

NextResponse未向前端返回BMI数据?求助解决方法

如何在前端获取BMI API返回的计算数据?

你的问题核心是没有解析fetch返回的响应体——fetch调用返回的resp是一个Response对象,它只包含响应状态、头信息等元数据,要获取API返回的BMI数据,必须调用异步方法解析响应体内容。

前端代码修改方案

在拿到resp后,需要调用.json()方法(这是异步操作,需要加await)来解析JSON格式的响应体,之后就能访问bmi字段了。修改后的前端代码如下:

try {
  const resp = await fetch(`/api/bmi?${queryParams}`, {
    method: "GET",
    headers: {
      "Content-Type": "application/json",
    },
  });

  // 先检查响应是否成功
  if (!resp.ok) {
    throw new Error(`请求失败,状态码: ${resp.status}`);
  }

  // 解析JSON响应体(异步操作,必须加await)
  const data = await resp.json();
  console.log("BMI数据:", data.bmi); // 这里就能拿到计算后的BMI值了
} catch (error) {
  console.error("API调用失败:", error);
}

额外优化建议(可选)

你的API代码里有个小细节可以简化:req.nextUrl.searchParams是同步属性,不需要加await,可以直接使用:

// 原API代码里的这部分可以去掉await
const searchParams = req.nextUrl.searchParams;
const inc = searchParams.get('inc');
const queryft = searchParams.get('ft');
const queryhtInInc = searchParams.get('htInInc');
const querywt = searchParams.get('wt');
const queryhtInCm = searchParams.get('htInCm');

这样不会影响功能,但代码更简洁规范。

内容的提问来源于stack exchange,提问作者Harsh Singh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 22:26:17