404错误源于请求未到达后端,首要确认network中实际发出的url是否正确。检查绝对路径(如/api/user)与相对路径差异,直接浏览器访问验证;再核对后端接口路径、请求方法、参数名及nginx代理配置;layui 2.8+需避免url与data混用导致请求被静默忽略。

404 错误说明请求压根没到后端接口,不是数据格式或分页逻辑问题,而是路径不通。先确认真实发出的 URL 是什么,再逐层比对。
检查 Network 里实际发出的请求地址
打开浏览器开发者工具 → Network → 刷新表格或点击页码,找到 table 或 laypage 相关的请求。重点看「Name」列里的完整路径,比如:
-
/api/user?page=2&limit=10(带/开头,是绝对路径) -
api/user?page=2&limit=10(不带/,会拼在当前 HTML 路径后,容易错成/admin/user.html/api/user)
把这串地址直接粘到浏览器地址栏敲回车:如果也 404,说明后端根本没暴露这个接口;如果能返回数据,那问题出在跨域或请求头(比如缺 token)。
确认后端接口路径和请求方法是否匹配
Layui 分页默认用 GET 请求,且依赖 URL 上的 page 和 limit 参数。常见断点:
- Spring Boot 中,
@RestController类上写了@RequestMapping("/api"),但方法只写@GetMapping("user"),漏了类级前缀 → 实际路径是/api/user,不是/user - ThinkPHP 用
input('page')接参,但 Layui 发的是page=2,没问题;但如果后端 expectingsize而你 URL 写成&limit=10,参数名不一致也会查空 → 改成&size=10或统一后端接收逻辑 - Nginx 代理漏配,比如前端请求
/api/xxx,但 Nginx 的location /api/规则没加,或 proxy_pass 少了结尾斜杠,导致转发失败
排查 Layui 版本对 url/data 混用的静默忽略
Layui 2.8+ 开始,如果初始化时同时写了 url 和 data,会直接跳过 AJAX 请求,用空 data 渲染——Network 里看不到请求,看着像 404,其实是根本没发出去。
检查你的 table.render() 配置:
- 删掉
data: []或data: {}字段,只留url: '/api/list' - 如果要预加载初始数据,改用
page: false+ 手动调用table.reload({ url: '...' }) - 旧项目升级后突然分页失效,大概率是这个原因,不是后端挂了
真正卡住的地方往往不在分页逻辑本身,而在于那个被你“想当然”认为正确的 URL —— 它可能差一个斜杠、少一级目录、或者被代理规则吞掉了。每次遇到 404,先盯死 Network 里的真实请求地址,比猜后端代码快十倍。











