You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 5.2路由混淆问题:表单提交未触发POST路由

问题分析与解决方案

你遇到的核心问题是表单的method="POST"属性放错了位置——你把它加到了<div class="form-group">标签上,而不是<form>标签本身!浏览器默认会用GET方法提交表单,所以才会把数据拼在URL里,误调用到/chefpage/{chefid}这条GET路由。

接下来给你一步步修正的方法:

  • 修正表单标签的属性
    把method="POST"和action="/addreview"都移到<form>标签上,而不是内部的div。示例代码如下:

    <form method="POST" action="/addreview">
        <div class="form-group">
            <!-- 你的表单输入项,比如评价内容、评分等 -->
            <input type="text" name="review_content" class="form-control">
            <!-- 其他表单元素 -->
        </div>
        <button type="submit" class="btn btn-primary">提交评价</button>
    </form>
    
  • 添加Laravel必需的CSRF令牌
    Laravel默认会验证POST请求的CSRF令牌,没有的话会直接返回419错误。你需要在表单里添加令牌字段,推荐用Blade指令快速实现:

    <form method="POST" action="/addreview">
        @csrf
        <div class="form-group">
            <!-- 表单内容 -->
        </div>
    </form>
    

    也可以手动添加隐藏字段:

    <input type="hidden" name="_token" value="{{ csrf_token() }}">
    
  • 验证路由配置
    确保你的POST路由Route::post('/addreview', 'HomeController@addreview');已经正确注册在routes/web.php里,没有拼写错误。

做完这些调整后,表单提交时就会正确发送POST请求到/addreview路由,而不是走GET的/chefpage/{chefid}了。如果还有问题,可以打开浏览器开发者工具的Network面板,查看请求的方法和URL是否符合预期。

内容的提问来源于stack exchange,提问作者Ark

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:46:44