Laravel表单提交返回404,控制器未接收请求技术求助
Laravel表单提交404错误排查方案
核对表单提交地址
表单的action建议通过路由名称生成,避免硬编码路径出错:<form method="POST" action="{{ route('admin_login_submit') }}">查看页面源码确认
action属性值和route:list输出的Path列完全一致,注意斜杠、前缀等细节。确认请求方法为POST
确保表单标签明确指定method="POST",打开浏览器开发者工具的Network面板,查看请求的Method是否为POST,排除JS或其他逻辑篡改请求方法的可能。排查路由分组与中间件
- 检查这条POST路由是否被包裹在路由分组中,比如带
prefix('admin')的分组会让实际路径变为/admin/admin_login_submit,需和route:list的路径完全匹配; - 暂时注释非必要的自定义中间件,排查是否有中间件提前拦截请求返回404。
- 检查这条POST路由是否被包裹在路由分组中,比如带
验证服务器重写规则
- Apache环境:确认项目根目录存在
.htaccess文件,且包含Laravel默认重写规则,同时开启mod_rewrite模块; - Nginx环境:确保配置文件中有正确的
try_files规则:try_files $uri $uri/ /index.php?$query_string;
- Apache环境:确认项目根目录存在
清除路由缓存
执行以下命令清除路由缓存,避免缓存导致路由解析异常:php artisan route:clear必要时可同时清除配置缓存:
php artisan config:clear检查控制器与方法
确认Admin\LoginController文件路径为app/Http/Controllers/Admin/LoginController.php,命名空间正确,且admin_login_submit方法为public权限,无拼写错误。
内容的提问来源于stack exchange,提问作者Anis Mumtaz
相关产品推荐
相关产品推荐

