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

Fetch POST请求客户端console.log失效,JSON解析报错排查

问题详情

POST请求可成功提交至服务器,服务器端console.log能正常输出接收的数据,但客户端console.log无法正常工作,同时抛出错误:
SyntaxError: JSON.parse: unexpected end of data at line 1 column 1 of the JSON data
请求状态显示为200 OK。

提交的请求数据格式合规:
{"hotSauceId":32,"presentation":5,"viscosityId":3,"spiciness":10,"Flavor_Notes":["Constituent Peppers"],"overall_rating":5,"lovedit":true,"taster_notes":"test"}

客户端提交代码

const handleSubmit = (e) => { 
    e.preventDefault();
    fetch('http://jyh:3000', {
      method: 'POST',
      headers: {'Content-Type':'application/json'},
      body: JSON.stringify({
          "hotSauceId": sauce,
          "presentation": presentation,
          "viscosityId": viscosity,
          "spiciness": spiciness,
          "Flavor_Notes": flavor,
          "overall_rating": overall,
          "lovedit": loved,
          "taster_notes": notes
      }),
      }).then(res => {
          return res.json();
      }).then(data => {
          console.log(data);
      }).catch(err => {
          console.log(err);
      });
  };

服务器端处理代码

app.post('/', async (req, res) => {
    await Jyh.create({  // .create is a Sequelize method
        hotSauceId: req.body.hotSauceId,
        presentation: req.body.presentation,
        viscosityId: req.body.viscosityId,
        spiciness: req.body.spiciness,
        Flavor_Notes: req.body.Flavor_Notes,
        overall_rating: req.body.overall_rating,
        lovedit: req.body.lovedit,
        taster_notes: req.body.taster_notes
    }).then(() => {
        console.log('req.body: ', req.body);
    }).catch((err) => {
        console.log(err);
    });
});
问题原因

服务器端处理完数据库创建操作后,没有向客户端返回任何响应内容。客户端调用res.json()时,会尝试将空的响应体解析为JSON,空内容不符合JSON格式,因此触发解析错误。

解决方案

修改服务器端代码,在操作完成后返回JSON格式的响应,无论成功还是失败:

app.post('/', async (req, res) => {
    try {
        await Jyh.create({
            hotSauceId: req.body.hotSauceId,
            presentation: req.body.presentation,
            viscosityId: req.body.viscosityId,
            spiciness: req.body.spiciness,
            Flavor_Notes: req.body.Flavor_Notes,
            overall_rating: req.body.overall_rating,
            lovedit: req.body.lovedit,
            taster_notes: req.body.taster_notes
        });
        console.log('req.body: ', req.body);
        // 返回成功响应
        res.status(200).json({ success: true, message: '数据提交成功' });
    } catch (err) {
        console.log(err);
        // 返回错误响应
        res.status(500).json({ success: false, message: '数据提交失败', error: err.message });
    }
});

修改后,客户端res.json()能解析到合法的JSON数据,console.log(data)就能正常输出响应内容,不会触发解析错误。

内容的提问来源于stack exchange,提问作者Younion Miller

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 17:16:09