我很难使用html / laravel中的post form函数从列表页面返回索引页面。
<form method="post" action="HomeController@index" >
</form>
我的路线是:
Route::get('/','HomeController@index');
Route::post('/', array('uses' => 'HomeController@index'));
Route::get('/list', 'ListController@list');
我得到的错误是
TokenMismatchException
我注意到URL仅将Controller添加到索引中 http://localhost/mylaravel/list/HomeController@index
什么时候应该 http://localhost/mylaravel/
答案 0 :(得分:0)
您应该像这样在表单中添加csrf令牌:
.htaccess
或者:
<form method="post" action="HomeController@index" >
{{ csrf_field() }}
<!-- other code -->
</form>
对于Laravel 4:
<form method="post" action="HomeController@index" >
@csrf
<!-- other code -->
</form>
答案 1 :(得分:0)
您尝试过这种方式吗?。
<form action="{{ url('/') }}" method="post">
{{ csrf_field() }}
<input type="text" name="title">
<input type="submit" value="submit">
</form>
答案 2 :(得分:0)
根据Laravel official doc version 5.7,Laravel为由应用程序管理的每个活动用户会话自动生成CSRF“令牌”。每当您在应用程序中定义HTML表单时,都应在表单中包含一个隐藏的CSRF令牌字段,以便CSRF保护中间件可以验证请求。
<form method="POST" action="action="{{ action('MailboxController@store') }}">
// Use this blade directive to generate the token field
@csrf
<div class="form-group">
<input class="form-control" placeholder="To:">
</div>
...
...
在将此请求的令牌与会话中存储的令牌匹配之后,VerifyCsrfToken中间件将自动验证此令牌。