Unexpected token '<', "<!DOCTYPE "... is not valid JSON
🚨 错误信息
SyntaxError: Unexpected token '<', "<!DOCTYPE "... is not valid JSON
🤖 AI解决方案
1. 错误翻译
原文:Unexpected token '<', "译文:意外的标记‘<’,‘
2.原因分析
声明)当作JSON解析,JSON解析器遇到<标记报错。 JSON.parse或类似方法处理接口响应时,响应实际返回的是HTML(如404/500错误页、登录页)。 3. 解决方案
以JavaScript
fetch为例,修复代码: ``
javascript
async function safeParseJson(url) {
try {
const res = await fetch(url);
if (!res.ok) throw new Error(HTTP ${res.status});
// 验证响应类型
const type = res.headers.get("content-type");
if (!type?.includes("application/json")) {
throw new Error(非JSON响应: ${type});
}
return await res.json();
} catch (err) {
// 捕获解析错误并打印原始响应(排查HTML内容)
const raw = await fetch(url).then(r => r.text()).catch(() => "无法读取响应");
console.error("解析失败,原始响应:", raw.slice(0, 200)); // 截断长内容
throw err;
}
}
`4. 预防措施
最佳实践1:解析前用 response.headers.get("Content-Type")验证类型为application/json。
最佳实践2:用 try-catch`包裹JSON解析,错误时打印原始响应排查。