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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 16:40:33