【问题标题】:Laravel POST failing - MethodNotAllowedHttpException (405) - even with POST Route and CSRF definedLaravel POST 失败 - MethodNotAllowedHttpException (405) - 即使定义了 POST Route 和 CSRF
【发布时间】:2018-10-01 04:37:13
【问题描述】:

我有一个设置了 post 方法并包含 csrf_field() 的表单:

<form method="post">
{{ csrf_field() }}

...
<button type="submit" class="btn btn-xs btn-space btn-primary">Save and finish</button>
</form>

在我的路线中,我已经正确设置了所有内容:

Route::get('/assess/{room_name}/{subject_selected}/{unit_selected}/{outcome_selected}', 'AssessmentHandler@step_6_assess');
Route::post('/assess//{room_name}/{subject_selected}/{unit_selected}/{outcome_selected}', 'AssessmentHandler@step_6_save');

Controller 中的功能已定义,一切正常。

但是,当我提交表单时,我收到以下错误消息:

Symfony\Component\HttpKernel\Exception\ MethodNotAllowedHttpException 无消息

我之前没有看到此消息,并且不确定在我的特定实例中是从哪里触发的。我读过的所有关于这个特定错误的搜索结果都在谈论从 GET 更改为 POST 或确保 CSRF 保护到位,但这不是我的问题。

使用开发工具显示 405 错误(不允许使用方法)。

知道这里会发生什么吗?

【问题讨论】:

  • 在开发工具中发布到的 Url 的确切路径是什么?
  • 刚刚发现错误。双 // 在 post 路由中

标签: php laravel


【解决方案1】:

尝试将{{ csrf_field() }} 替换为@csrf。 您的帖子网址中还有 2 个斜杠:Route::post('/assess//{room_name}

确保您重定向到正确的页面。

也许您可以向我们展示您控制器中的代码。

你的控制器真的是AssessmentHandler而不是AssesmentHandlerController吗?

【讨论】:

  • 感谢您的回复。是双 // 导致了问题。
猜你喜欢
  • 2017-02-20
  • 1970-01-01
  • 2018-06-15
  • 2021-12-15
  • 2015-06-21
  • 2019-06-14
  • 1970-01-01
  • 1970-01-01
  • 2019-07-30
相关资源
最近更新 更多