Express渲染cart.ejs报SyntaxError: Unexpected token '<'错误如何解决
解决POST请求渲染ejs文件报SyntaxError: Unexpected token '<'问题
按照以下步骤逐一排查修复:
检查EJS依赖与模板引擎配置
首先确认已安装ejs依赖,执行对应安装命令:npm install ejs --save
再检查项目入口文件(通常为app.js或server.js)是否添加了模板引擎相关配置,缺失则补充:const express = require('express') const app = express() // 注册EJS为模板引擎 app.set('view engine', 'ejs') // 配置模板文件存放目录,默认指向项目根目录下的views文件夹,cart.ejs需存放在该目录内 app.set('views', './views')检查POST请求的调用方式
如果你通过fetch/axios等异步方法调用该POST接口,且前端代码将响应按JSON格式解析(比如调用了res.json()、配置了responseType: 'json'),接口返回的HTML内容开头的<会被JSON解析器判定为非法字符,直接抛出该错误。
对应修复方案:- 若需要跳转渲染完整页面,改用form表单提交POST请求,不要使用异步请求
- 若需要局部刷新页面,前端拿到响应后按纯文本处理,直接将返回的HTML插入对应DOM节点即可,不要做JSON解析
检查文件配置正确性
- 确认cart.ejs文件存放路径与上述views目录配置匹配,文件名、后缀名拼写正确,没有误写为cart.html
- 确认EJS文件语法无错误,你当前提供的cart.ejs语法合法,不会引发该报错
内容的提问来源于stack exchange,提问作者jayasree
相关产品推荐
相关产品推荐

