必须在 table.render() 顶层配置 request,reload 不继承、全局设置无效;request 错放 where 或 before 无效;需同步调整 parsedata 或 response 以匹配后端字段。

必须用 request 配置显式重命名,且只能在 table.render() 的顶层配置中设置,reload 不继承、全局配置不存在。
request 必须写在 table.render() 顶层,不能放 where 或 before 里
很多人把 request: { pageName: 'pageNum', limitName: 'pageSize' } 错误地塞进 where 或 before 回调里,结果完全不生效。Layui 只在初始化时读取顶层的 request 对象,其他位置写的会被忽略。
-
request是初始化配置项,不是运行时参数 - 写错位置后 Network 面板里仍看到
?page=1&limit=10,但后端收不到对应字段 - 正确位置示例:
table.render({<br> elem: '#demo',<br> url: '/api/list',<br> request: { pageName: 'pageNum', limitName: 'pageSize' }, // ✅ 必须这里<br> page: true,<br> cols: [...] });
reload 时 request 不生效,页码参数名会“回退”
调用 table.reload('id', { where: { keyword: 'abc' } }) 后,分页字段名还是初始 render 时定的;如果忘了配 request,reload 就会发默认的 page/limit,而后端只认 pageNum/pageSize —— 数据就空了。
-
table.reload()只继承初始request,不支持传入新request - 想换一套参数名(比如切到 v2 接口),必须先
table.destroy('id'),再重新table.render() - 别指望
layui.table.set({ request: {} })——它只影响后续新表格,对已渲染实例无效
改了 request 却没同步改 parseData,表格卡 loading
后端响应结构往往也非标准:{ total: 100, list: [...] },而你没改 parseData,Layui 还按默认 count 和 data 去取,结果解析失败,表格一直转圈。
-
parseData必须和request同步调整,例如:parseData: function(res){<br> return {<br> "code": res.code,<br> "msg": res.message,<br> "count": res.total, // 对应后端的 total 字段<br> "data": res.list // 对应后端的 list 字段<br> };<br>} - 如果后端总条数字段叫
total_count,就得写count: res.total_count -
response配置可替代parseData简化写法:response: { countName: 'total', dataName: 'list' }
最常被忽略的是:改完 request 后,既没验证 Network 请求参数名是否真变了,也没检查响应体字段是否被正确提取——这两处任一出错,分页就静默失效,页面看起来正常,数据却永远不对。











