【发布时间】:2021-03-25 04:25:20
【问题描述】:
我有一个简单的刀片形式 mith post 方法和 csrf 令牌:
<form name="login" action="{{ route('login.do') }}" method="post" autocomplete="off">
@csrf
<label>
<span class="field icon-envelope">E-mail:</span>
<input type="email" name="email" required/>
</label>
<label>
<span class="field icon-unlock-alt">Password:</span>
<input type="password" name="password_check"/>
</label>
<button class="gradient gradient-orange radius icon-sign-in" type="submit">Send</button>
</form>
以及routes/web.php中的路由:
Route::post('login', 'AuthController@login')->name('login.do');
当我提交表单时,我收到错误:
Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException
此路由不支持 GET 方法。支持的方法:POST。
如您所见,路线和表单都还可以,但有些东西搞砸了并更改了方法。它甚至不会到达控制器层。
一些信息:
-Laravel 8.12
-我没有定制的中间件
-htaccess 和 config/cors 是默认的
-路线不以斜线结尾,也不重复
-每当我进行更改时,我都会清理缓存
-APP_URL以http开头,SESSION_SECURE_COOKIE因此设置为false
-APP_ENV 正在生产中
可能是什么?我读过它可能是服务器中的某些东西阻止了请求并更改了它的方法,所以我不确定错误是 laravel 还是服务器相关。
【问题讨论】:
-
是那个页面的错误信息吗?您可能会在登录后重定向吗?
-
您是否尝试过 dd() 检查请求的值是否达到了您的方法。
-
尝试一次通过重写你的路由这样 Route::post('/update',[PersonController::class, 'update'])->name('update');
-
登录未完成。正如我所说,它甚至不会到达控制器层。
-
请分享更多详细信息 - 您如何提交表格?是否有任何 Javascript 处理程序更改表单方法?
标签: laravel symfony laravel-blade