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

Replit运行Discord账号生成器报Unexpected token < in JSON错误如何解决?

报错原因
  • 核心原因是代码预期服务端返回JSON格式响应,但实际收到的是HTML页面内容(开头为<!DOCTYPE HTML>),调用JSON.parse解析失败抛出异常,未捕获的异常直接导致进程退出。
  • 你当前使用的hastebin-save库是为hastebin类文本存储服务设计的,但你配置的目标服务是ouo.io,两者接口规则完全不兼容:ouo.io是短链接服务,不支持当前请求的POST格式,返回的是报错页/首页的HTML内容,而非JSON格式的上传结果。
  • 代码缺少基础容错逻辑:没有判断HTTP响应状态码,也没有对JSON解析操作做异常捕获,只要服务端返回非JSON内容就会直接崩溃。
  • 请求头设置与上传内容不匹配:你指定了Content-Type: application/json,如果req.write传入的text不是合法JSON格式,服务端也会返回错误HTML页。
解决方案
  • 调整服务选型:ouo.io不支持直接上传文本内容获取访问链接,你需要先把生成的账号数据上传到支持文本存储的服务(如自建hastebin、pastebin类服务、对象存储等),再将生成的文本访问链接提交到ouo.io生成短链。
  • 给upload.js添加强容错逻辑,修改回调部分代码如下:
clb.on("end", () => {
  // 先校验HTTP响应状态码
  if (clb.statusCode < 200 || clb.statusCode >= 300) {
    return callbackFunction(new Error(`请求失败,状态码:${clb.statusCode}`));
  }
  // 捕获JSON解析异常
  try {
    const resData = JSON.parse(data);
    callbackFunction(null, resData.key);
  } catch (parseErr) {
    callbackFunction(new Error(`解析响应失败,返回内容非JSON:${data.slice(0, 200)}`));
  }
});
  • 调用上传方法时必须处理回调返回的错误,避免未捕获异常导致进程崩溃。
  • 如果你确实要对接ouo.io接口,需参照其官方API规则调整请求方法、请求头、参数格式,不能直接复用hastebin的上传逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 00:24:03