解决 POST 请求中 VerifyCsrfToken.php 中的 TokenMismatchException
Solving TokenMismatchException in VerifyCsrfToken.php in POST request
我是 Laravel 的新手。我已经为 GET 和 POST 创建了一些路由,但唯一可以正常工作的是 GET 路由。 POST 总是 returns TokenMismatchException,即使内部进程和数据库查询正确执行。我在SO上看到的一些题目一般都是讲AJAX,解决方法涉及发送token。但是我还没有使用任何 AJAX...,通常答案是说如果我使用普通的 POST 形式,Laravel 将插入一个隐藏的标记。
这是路线代码:
Route::post('/practice/{level_id?}/{group_id?}/{command?}', 'WebController@practice');
Route::get('/practice/{level_id?}/{group_id?}/{command?}', 'WebController@practice');
这是我在网络控制器上接收它的方式:
public function practice($level_id = "", $group_id = "", $command = "")
有什么问题吗?什么可能导致我的 POST 请求失败?谢谢
请在您使用 Laravel 表单生成器的 form.If 中添加一个隐藏字段,然后当您执行 Form::open()
.[=14 时它会自动向您的表单添加一个隐藏标记字段=]
试试这样的东西:
<input name="_token" type="hidden" value="{{ csrf_token() }}">
如果你使用的Form::open
方法没有新版本的Laravel你必须从here安装它,那么就不会有TokenMismatchException的问题。但是,如果您使用 HTML5 表单标签,则需要在 HTML 表单中添加 {{ csrf_field() }}
,这将生成
<input type="hidden" name="_token" value="53sfsffxth7AYe4RFSjzaPf2ygLCecJhbkhblah">
我是 Laravel 的新手。我已经为 GET 和 POST 创建了一些路由,但唯一可以正常工作的是 GET 路由。 POST 总是 returns TokenMismatchException,即使内部进程和数据库查询正确执行。我在SO上看到的一些题目一般都是讲AJAX,解决方法涉及发送token。但是我还没有使用任何 AJAX...,通常答案是说如果我使用普通的 POST 形式,Laravel 将插入一个隐藏的标记。
这是路线代码:
Route::post('/practice/{level_id?}/{group_id?}/{command?}', 'WebController@practice');
Route::get('/practice/{level_id?}/{group_id?}/{command?}', 'WebController@practice');
这是我在网络控制器上接收它的方式:
public function practice($level_id = "", $group_id = "", $command = "")
有什么问题吗?什么可能导致我的 POST 请求失败?谢谢
请在您使用 Laravel 表单生成器的 form.If 中添加一个隐藏字段,然后当您执行 Form::open()
.[=14 时它会自动向您的表单添加一个隐藏标记字段=]
试试这样的东西:
<input name="_token" type="hidden" value="{{ csrf_token() }}">
如果你使用的Form::open
方法没有新版本的Laravel你必须从here安装它,那么就不会有TokenMismatchException的问题。但是,如果您使用 HTML5 表单标签,则需要在 HTML 表单中添加 {{ csrf_field() }}
,这将生成
<input type="hidden" name="_token" value="53sfsffxth7AYe4RFSjzaPf2ygLCecJhbkhblah">