运行JSP后Chrome报JSON解析等异常,AJAX请求Servlet问题排查
报错问题排查说明
1. adblock-onpage-icon-cs.js: browser未定义报错
- 该报错不属于你的业务代码问题,是Chrome浏览器安装的广告拦截类扩展自身脚本运行异常导致,不会影响你的JSP、AJAX业务逻辑。要消除该报错可临时禁用对应广告拦截扩展后刷新页面即可。
2. Uncaught SyntaxError: Unexpected token o in JSON at position 1 报错
触发原因
你尝试对已经是JS对象的内容执行JSON.parse()操作就会触发该报错。JS执行JSON.parse时要求传入参数为字符串格式,如果传入的是对象,会先将对象隐式转换为字符串,普通对象转字符串的结果为[object Object],解析到第1位的字符o时不符合JSON语法规则,就会抛出该异常。
结合你的代码排查方向
你在AJAX配置中已经指定了dataType:"json",jQuery会自动将后端返回的JSON字符串解析为JS对象,直接赋值给success回调的result参数:
- 检查你后续用到
result的代码,有没有额外执行JSON.parse(result)的操作,如果有直接删除即可,result本身就是可直接使用的JS对象。 - 打开Chrome开发者工具「网络」面板,找到发往
ServletReportes的POST请求,查看响应内容是否为标准JSON格式,是否存在多余的调试打印内容、空格、换行等非JSON字符。 - 检查后端
ServletReportes的逻辑,确保只输出JSON字符串,没有其他额外输出,同时要设置正确的响应头:response.setContentType("application/json;charset=utf-8");,避免内容格式异常。
内容的提问来源于stack exchange,提问作者Julian Rincon
相关产品推荐
相关产品推荐

