文章目录 9 个章节
Codex 出现 DOCTYPE / JSON 错误:检查响应和连接地址
常见文字是 Unexpected token '<'、<!DOCTYPE 或 is not valid JSON。这通常提示程序在解析数据时,拿到了无法按 JSON 读取的内容。 例如正文是网页,但仅凭错误文字还不能确定是谁返回了这张网页。
🎯 这篇要完成:DOCTYPE / JSON 报错。 找到响应来源,再修连接。

原创流程示意,帮助记住顺序;具体按钮、字段和条件以当前页面与本次订单为准。
一、先定位发生在哪一步
记下错误是在登录授权、发送消息,还是调用某个 MCP 工具时发生。保留客户端版本、时间和完整错误,记录最近有没有改过服务地址、代理或账号。
登录阶段失败:先检查认证流程。
普通消息失败:检查模型服务连接。
只有一个工具失败:优先查那个工具的地址与授权。
这能避免一个插件出错,却把所有 Codex 配置都删掉。其他错误可按综合报错索引继续分流。
二、确认实际连接到哪里
用过中转或配置切换工具的用户,查看当前启用的服务,而非只看卡片名称。官方文档中,服务配置包含连接地址、认证方式和接口格式;这几项必须与服务方说明相符。
ChatGPT 的网页登录地址不能直接当 API 地址。不要凭感觉给所有地址补 /v1,也不要一律删除 /v1。 不同服务的完整接口路径与请求方式需要分别核对。想恢复订阅登录,按切回官方账号处理旧配置。
单位代理或网络网关也可能改变响应。此时先记录它返回的提示与拦截原因,交给管理员检查对应规则,不要把关闭整个安全软件当成通用办法。
三、让 AI 帮你看三个证据
不熟悉日志的朋友可把下面的话发给排错 AI:
Codex 报 DOCTYPE / JSON 解析错误。请先定位失败请求属于登录、模型还是工具,再检查 HTTP 状态码、Content-Type 和脱敏后的响应开头,告诉我内容来自哪里。不要显示请求中的令牌、Cookie、Session 或密钥;修改配置前先备份,只改一项。
三个证据分别回答:
| 证据 | 能帮助判断什么 |
|---|---|
| HTTP 状态码 | 是否被拒绝、重定向,或服务返回错误 |
Content-Type | 服务声称返回网页、JSON,还是其他格式 |
| 去敏后的响应开头 | 实际是否为登录页、错误页或网关提示 |
网页开头出现 HTML 是线索,不是结论;即使状态码为 200,也要确认正文是否符合接口约定。检查时只需要少量脱敏内容,不必公开完整网络记录。
四、按找到的原因修复
认证页代替数据时,重新完成本人登录;地址不正确时,按该服务文档改回正确接口;网关错误时,检查该网关状态或联系维护方;仅工具接口异常时,按MCP 排查处理。
涉及 TLS / 证书时,先核对系统时间和证书提示。企业私有证书由管理员提供可信证书链,官方 CLI 支持相应 CA 配置,不能用忽略证书校验代替正常认证。
五、回原来的失败步骤验收
一次只做一项修改,保存前后的差异,再回同一个客户端做一次小测试。普通对话恢复之后,还要确认原来失败的工具或任务能执行。若仍失败,将脱敏错误、时间、服务来源和已试方法交给人工售后。
实际操作中,容易弄错的地方
报错在哪,不一定问题就在哪
程序期待JSON,却收到HTML时,解析器只能在读取结果时报错。真正原因可能是地址不对、登录页、代理验证页或网关错误;修改JSON解析代码不一定能解决。
先记录HTTP状态、Content-Type和响应开头的脱敏片段。不要发送整份响应,因为其中可能有票据、Cookie或账号信息。正常HTML页面也可能返回200,所以状态码要和内容一起判断。
再核对原请求应该到哪个服务、配置是否仍指向旧中转,以及该服务要求的API路径。网页能打开不等于它提供了所需的JSON接口。
修正后用同一个小请求验证,再回原任务;如果开始返回正规的JSON错误,则读取新错误继续排查。

💡 小锅提醒:解析器只是最后喊疼的。
完成前,再做一次小检查
✅ 当前账号、订单或项目,就是这次要操作的对象。
✅ 操作已经按页面确认,结果符合“找到响应来源,再修连接”。
🔎 如果仍有报错,保留本次完整提示,再去对应排查入口;敏感凭据先遮挡。
本文是原创文章,采用 CC BY-NC-SA 4.0 协议,转载请注明来源 问题排查

评论 —
友善交流 · 审核后公开登录后评论,记录会保存在个人中心。
0/4000正在读取评论…