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

JS fetch()未获取预期响应体,但Chrome DevTools显示正常的问题排查

问题原因及解决方案

你的问题核心出在对fetch返回结果的处理逻辑上:

  • fetch请求完成后返回的不是服务器直接返回的数组数据,而是一个**Response对象**——这个对象存储的是请求的元信息(比如状态码、响应头),而非你需要的[0]或[1]这类实际响应内容。
  • 你直接调用JSON.stringify(response),本质是序列化这个Response对象本身,自然得不到预期的数组,只会输出空对象或包含元数据的无关结构。

修正后的代码

function predict(values) {
  fetch(`https://darrendube.pythonanywhere.com/?${stringify(values)}`)
    .then((response) => {
      // 先验证请求是否成功(状态码处于200-299区间)
      if (!response.ok) {
        throw new Error('请求失败');
      }
      // 调用json()解析响应体为JSON格式数据
      return response.json();
    })
    .then((data) => console.log(data))
    .catch((error) => console.error('请求出错:', error));
}

关键说明

  1. response.json():这个方法会读取并解析服务器返回的JSON格式响应体,返回一个Promise,当解析完成后,就能拿到你预期的[0]或[1]数组。
  2. 错误处理:增加response.ok检查和catch块,能在请求失败时给出明确提示,避免无意义的报错信息,方便后续排查问题。

内容的提问来源于stack exchange,提问作者Darren Dube

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 10:50:24