layui table.render 默认只认 res.code === 0 为成功,若后端字段非 code(如 status、result、success)或状态值非数字 0,需配合 statuscode、statusname 或 parsedata 统一转换为 {code: 0, msg: '', count: n, data: []} 格式,缺一不可。
直接改 response.statuscode 就行,但必须配合 response.statusname 或 parsedata 一起用,否则无效。
response.statusCode 只认数字或布尔值,不认字符串
Layui 的 table.render 默认只把 res.code === 0 当作成功。你想让它认 200、true 甚至 "success",得明确告诉它:
-
statusCode只接受数字(如200)或布尔值(如true),传"200"或"success"会静默失败 - 如果后端字段叫
status而不是code,必须同时设statusName: 'status' - 如果后端用
success: true这种布尔字段,statusCode: true才有效,statusCode: 'true'没用
后端字段名不叫 code?用 response.statusName 映射
很多接口返回的是 { status: 200, data: [...] } 或 { result: 1, list: [...] },这时不能只改 statusCode,还得告诉 Layui 去读哪个字段:
- 设
statusName: 'status'→ Layui 就去读res.status - 设
msgName: 'error_msg'→ 读res.error_msg当提示信息 - 设
countName: 'total'→ 读res.total当总数 - 设
dataName: 'items'→ 读res.items当数据列表
这些字段名映射必须和后端实际 key 完全一致,大小写敏感。
后端返回结构太乱?必须用 parseData 做最终兜底
当后端字段名、嵌套层级、状态值类型(比如 success: true)都不统一时,response 配置会力不从心,这时 parseData 是唯一可靠方案:
-
parseData函数里,你得手动把原始res转成 Layui 要的格式:{ code: 0, msg: '', count: 100, data: [] } -
code字段必须是数字0表示成功,其他值(哪怕200)都算失败 —— 这是硬逻辑,绕不开 - 常见错误:在
parseData里写"code": res.success,结果res.success是true,而 Layui 只认0,得转成res.success ? 0 : 1 - 别漏掉
count字段,缺了表格就空白,哪怕后端没返回总数,也得补个res.data.length或硬写0
最易被忽略的一点:Layui 不校验 parseData 返回对象是否完整,少一个 code、data 或 count,表格就彻底不渲染,且控制台不报错 —— 你得自己盯住这四个字段。











