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

Laravel路由错误:new-order-form不支持GET,仅支持POST,求助解决

解决Laravel中"The GET method is not supported for route new-order-form"错误

问题根源

window.location.href 跳转本质是发起GET请求,你最初把路由定义为POST,导致请求方法不匹配。即便后续修改了路由方法,大概率是Laravel路由缓存没清除,旧路由规则仍在生效。

解决方案步骤

  1. 修正路由为GET方法
    因为showNewOrderForm是返回表单页面的操作,符合GET请求语义,修改web.php:

    Route::get('new-order-form', [OrderController::class, 'showNewOrderForm'])->name('new.order.form');
    
  2. 清除Laravel路由缓存
    终端执行以下命令,确保新路由规则生效:

    # 清除路由缓存
    php artisan route:clear
    # 可选:清除所有缓存(含配置、视图等)
    php artisan optimize:clear
    
  3. 确认前端跳转逻辑
    当前JS跳转逻辑没问题,window.location.href发起的GET请求和修正后的路由匹配:

    $(document).ready(function(){
        // Hiển thị form tạo đơn hàng mới khi click
        $("#newOrderBox").click(function(){
            window.location.href = "{{ route('new.order.form') }}";
        });
    });
    

额外说明

如果后续需要提交表单数据,才需要使用POST路由(比如处理表单提交的store方法),而展示表单的操作始终应该用GET。

内容的提问来源于stack exchange,提问作者Trần Hồ Hoàng Vũ

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 21:12:39