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

如何解决API请求中的'SyntaxError: Unexpected token '<''无效JSON错误?

解决API请求报错:SyntaxError: Unexpected token '<', "<!DOCTYPE "... is not valid JSON

先明确核心问题:你看到的JSON解析错误只是表面现象,真正根源是服务器端的500内部错误——从你贴的Network响应里的__NEXT_DATA__能提取到关键报错信息:

"message": "ENOTDIR: not a directory, access 'Path-to-my-file'"

服务器在尝试访问Path-to-my-file时,错误地把文件当成目录来操作,导致返回了HTML格式的错误页面,而你的前端代码期望接收JSON,自然触发了解析失败。

下面是具体解决步骤:

1. 修复服务器端的路径访问问题

  • 打开你的API代码文件(/api/pool-request.js),定位到涉及文件/目录操作的代码段
  • 检查Path-to-my-file这个路径:确认它实际是文件还是目录,代码里的操作是否匹配(比如用了fs.readdir这类需要目录的API去读取文件,就会触发这个错误)
  • 修正代码逻辑:如果是要读取文件,就用fs.readFile这类文件操作API;如果是要访问目录,确保路径指向的确实是一个合法目录

2. 验证Payload格式(提前规避后续问题)

虽然这次的错误和你payload里的<br>标签无关,但为了避免后续可能的格式异常,发送请求前可以用JSON.stringify()处理整个payload,它会自动转义所有特殊字符:

const payload = {
  String: "<br /><br />1. The #StayAtHomePhotoChallenge: Participants take pictures of activities. <br /><br />2. ..."
};
// 转义后再发送请求
fetch('/api/pool-request.js', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json'
  },
  body: JSON.stringify(payload)
});

3. 确认API返回正确的JSON

修复服务器端错误后,重新测试请求:

  • 查看Network面板的响应状态码,应该是200类的成功状态
  • 检查响应内容,确保是标准JSON格式,同时服务器要设置响应头Content-Type: application/json

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 06:35:24