Laravel 路由添加模板名称

问题描述 投票:0回答:1

我有一个名为 Lodge.upload 的刀片模板。在该模板中,我有以下代码:

<form name="app" action="storeSummons" enctype="multipart/form-data" method="post">

在我的路线文件中我有这个:

Route::post('/storeSummons',[\App\Http\Controllers\LodgesController::class,'storeSummons'])->name('storeSummons');

当我尝试从这个简单的表单(只有两个字段)发布时,我收到错误

Lodge.uploads/storeSummons 路由不支持 POST 方法。支持的方法:GET、HEAD

该路线明确标记为 storeSummons,没有提及模板名称或其路线。

我已经尝试清除缓存、路由、视图,但它仍然坚持将其添加到路由中。该组仅具有添加中间件的身份验证。

这让我发疯,我检查了路线是否被重复但没有成功。

laravel routes
1个回答
0
投票

我将协助您解决 Laravel 应用程序中的“不支持 POST 方法”错误。以下是综合的回应,结合了专家反馈的见解并解决了潜在的原因:

理解错误:

  • 不正确的路线或方法:该错误表明两者之间不匹配 表单的提交方法和定义的路线。
  • 缺少 CSRF 令牌:Laravel 需要有效的 CSRF 令牌才能进行 POST 请求以防止跨站点请求伪造攻击。

故障排除步骤:

  • 验证路线定义:

    • 确保路由定义为 POST 路由:
      Route::post('/storeSummons', ...)
    • 检查是否有任何具有相同路径或名称的冲突路由。
    • 如果路由在组内,请确认该组的中间件 配置。
  • 包含 CSRF 代币:

    • 在表单中添加

      @csrf
      指令:

      <form name="app" action="storeSummons" enctype="multipart/form-data" method="post">@csrf</form>

  • 检查路由缓存:

    • 清除路由缓存:
      php artisan route:clear
    • 如果使用缓存机制,也清除那里的缓存。
  • 回顾中间件:

    • 检查应用于路由或组的中间件,确保它们不会干扰 - POST 请求。
  • 检查浏览器开发者工具:

    • 检查网络请求的路径和方法是否正确。
    • 查找任何指示问题的错误或警告。
© www.soinside.com 2019 - 2024. All rights reserved.