Laravel路由错误:new-order-form不支持GET,仅支持POST,求助解决
解决Laravel中"The GET method is not supported for route new-order-form"错误
问题根源
window.location.href 跳转本质是发起GET请求,你最初把路由定义为POST,导致请求方法不匹配。即便后续修改了路由方法,大概率是Laravel路由缓存没清除,旧路由规则仍在生效。
解决方案步骤
修正路由为GET方法
因为showNewOrderForm是返回表单页面的操作,符合GET请求语义,修改web.php:Route::get('new-order-form', [OrderController::class, 'showNewOrderForm'])->name('new.order.form');清除Laravel路由缓存
终端执行以下命令,确保新路由规则生效:# 清除路由缓存 php artisan route:clear # 可选:清除所有缓存(含配置、视图等) php artisan optimize:clear确认前端跳转逻辑
当前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ũ
相关产品推荐
相关产品推荐

