Php Laravel:MethodNotAllowedHttpException:此路由不支持GET方法。支持的方法:POST
我有一个很奇怪的问题。我有一个post路由,但我收到一个错误,此路由不支持GET方法。 这是我的web.php函数:Php Laravel:MethodNotAllowedHttpException:此路由不支持GET方法。支持的方法:POST,php,laravel,post,Php,Laravel,Post,我有一个很奇怪的问题。我有一个post路由,但我收到一个错误,此路由不支持GET方法。 这是我的web.php函数: Route::post('/sender',function () { $text = request()->text; event(new FormSubmitted($text)); }); 我肯定是在发邮件请求。 我已经检查过了: 但选择的答案并不清楚 我的视图代码: <?php echo csrf_field(); ?> {{ csr
Route::post('/sender',function () {
$text = request()->text;
event(new FormSubmitted($text));
});
我肯定是在发邮件请求。
我已经检查过了:
但选择的答案并不清楚
我的视图代码:
<?php echo csrf_field(); ?>
{{ csrf_field() }}
<form action="/sender" method="post>
First name: <input type="text" name="fname"><br>
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<input type="text" name="content"><br>
<input type="submit">
{{csrf_field()}}
我相信这可能只是一个打字错误——你错过了“post”后面的引号(“)
查看:
<form action="/sender" method="post">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
First name: <input type="text" name="fname"><br>
<input type="text" name="content"><br>
<input type="submit">
</form>
编辑:更新控制器代码,您正在从名为“text”的输入请求数据,但视图中没有任何名称为“text”的输入,只有输入类型首先,通过php artisan route:list
命令检查是否正确定义路由
刃锉
<form action="{{ route('sender') }}" method="post">
@csrf
First name: <input type="text" name="fname"><br>
<input type="text" name="content"><br>
<input type="submit">
如果您使用的是带有控制器的路由,那么您的控制器看起来是这样的
public function sender(Request $request)
{
$fname = $request->fname;
event(new FormSubmitted($fname));
}
您是如何为您的应用程序提供服务的?您使用的是什么web服务器软件?请提供您的查看代码,您可能试图在POST路由上使用GET方法。请检查您的POST
请求没有被服务器重定向到GET
请求。我最近在重定向base的apache中发现了这一点在请求url的尾部/
上添加了d。@CodeBoyCode添加了它,但没有更改。我尝试更改我必须“获取”的帖子“请求,这不会引发任何错误。这正常吗?Joe,你是什么意思?就我个人而言,最好的方法是用动作和方法打开表单,然后声明你的CSRF令牌,然后声明你的输入,记住用(我知道你没有包含在代码中,你在代码中做了吗?嘿,乔,我刚刚注意到你的控制器也有问题,这是否解决了你的问题@Joe
Route::post('/sender',function () {
$text = request()->fname; //access by input field name
event(new FormSubmitted($text));
})->name('sender');
or
Route::post('/sender', 'UserController@sender')->name('sender');
public function sender(Request $request)
{
$fname = $request->fname;
event(new FormSubmitted($fname));
}