Laravel post 路由方法错误
Laravel error in post method of route
我得到了这些路线,
Route::group(['middleware' => ['web']], function () {
//
// Route definition for showing the login page
Route::get('login', function()
{
// Display a placeholder text to the user
return '<form action="login" method="post">
Username: <input type="text" name="username"><br>
Password: <input type="password" name="password">
<input type="submit" value="Submit">
</form>';
});
// Route definition for processing the login form
Route::post('login', function()
{
// Display a placeholder text to the user
return 'Username:'.$_POST["username"].',Password: '.$_POST["password"];
});
});
当我转到 http://localhost:8000/login 时,我输入了用户名和密码,但是 route:post 产生了这个错误?
糟糕,好像出了点问题。
VerifyCsrfToken.php 第 67 行中的 1/1 TokenMismatchException:
您需要将 csrf 令牌放入您的表单中..
<form method="POST" action="login">
{{ csrf_field() }}
<input type="text" name="username">
<input type="password" name="password">
<button type="submit">Submit</button>
</form>
如果您正在发送 post 数据并且未在表单中定义 csrf 令牌,则 laravel 抛出如下异常:
Whoops, looks like something went wrong. 1/1 TokenMismatchException in VerifyCsrfToken.php line 67
如果您想删除 laravel 默认提供的 csrf 令牌功能,您只需在
中添加注释
app/Http/Kernel.php
- 文件行 no:20
//\App\Http\Middleware\VerifyCsrfToken::class,
那么整个项目的 CSRF(跨站请求伪造)功能将不起作用。
但我建议你不要禁用 CSRF 保护。因为这是自动检测天气请求是 correct/safe 还是不是入侵者攻击。
我得到了这些路线,
Route::group(['middleware' => ['web']], function () {
//
// Route definition for showing the login page
Route::get('login', function()
{
// Display a placeholder text to the user
return '<form action="login" method="post">
Username: <input type="text" name="username"><br>
Password: <input type="password" name="password">
<input type="submit" value="Submit">
</form>';
});
// Route definition for processing the login form
Route::post('login', function()
{
// Display a placeholder text to the user
return 'Username:'.$_POST["username"].',Password: '.$_POST["password"];
});
});
当我转到 http://localhost:8000/login 时,我输入了用户名和密码,但是 route:post 产生了这个错误?
糟糕,好像出了点问题。 VerifyCsrfToken.php 第 67 行中的 1/1 TokenMismatchException:
您需要将 csrf 令牌放入您的表单中..
<form method="POST" action="login">
{{ csrf_field() }}
<input type="text" name="username">
<input type="password" name="password">
<button type="submit">Submit</button>
</form>
如果您正在发送 post 数据并且未在表单中定义 csrf 令牌,则 laravel 抛出如下异常:
Whoops, looks like something went wrong. 1/1 TokenMismatchException in VerifyCsrfToken.php line 67
如果您想删除 laravel 默认提供的 csrf 令牌功能,您只需在
中添加注释app/Http/Kernel.php
- 文件行 no:20
//\App\Http\Middleware\VerifyCsrfToken::class,
那么整个项目的 CSRF(跨站请求伪造)功能将不起作用。
但我建议你不要禁用 CSRF 保护。因为这是自动检测天气请求是 correct/safe 还是不是入侵者攻击。