Thymeleaf模板脚本不执行,控制台报‘Error OK’求助
问题解决:Spring Boot + Thymeleaf 页面脚本不执行,控制台提示"Error OK"
可能原因及解决方案
1. 不必要的Thymeleaf JavaScript内联模式
你的脚本代码没有使用Thymeleaf的内联表达式(如[[${}]]),开启th:inline="javascript"反而可能让Thymeleaf对脚本做不必要的处理,导致执行异常。
修改方案:移除th:inline="javascript"属性:
<script> console.log("Script Executed"); </script>
2. ${queryData}输出破坏HTML结构
如果queryData是复杂对象(集合、自定义实体类),直接用th:text="${queryData}"会输出对象的toString()结果,可能包含引号、换行等特殊字符,破坏页面DOM结构,导致后续脚本无法解析。
修改方案:
- 如果只是需要打印对象内容,用Thymeleaf的字符串转换工具:
<p th:text="${#strings.toString(queryData)}"></p>
- 如果是JSON格式数据,用JSON序列化后输出:
<p th:utext="${#json.stringify(queryData)}"></p>
3. 响应状态异常(控制台"Error OK"的来源)
控制器方法中声明了HttpServletResponse res但未使用,需排查:
- 是否有拦截器、过滤器或
CatalogService的方法修改了响应状态码? - 暂时移除
HttpServletResponse res参数,简化控制器方法:
@GetMapping("/RSChartsController") public String RSChartsController(Model model, HttpServletRequest req) throws SQLException { Object queryData = catalogService.reportChartDetails(); model.addAttribute("queryData", queryData); return "RSChartsTemplate"; }
4. 浏览器端排查步骤
- 打开开发者工具的Network标签,查看页面请求的响应状态是否为200 OK,响应HTML内容是否完整无异常;
- 查看Elements标签中渲染后的
<script>代码是否正常,有没有被篡改; - 检查Console标签除了"Error OK"外,是否有其他脚本解析、资源加载错误。
内容的提问来源于stack exchange,提问作者Simran
相关产品推荐
相关产品推荐

