Laravel 7 发布联系表给我错误 419
Posted
技术标签:
【中文标题】Laravel 7 发布联系表给我错误 419【英文标题】:Laravel 7 Post contact form giving me error 419 【发布时间】:2020-10-28 15:55:17 【问题描述】:所以我一直在尝试让联系表单在使用表单时显示为/contact
,并在提交表单之后。无论我尝试什么,我都会收到错误 419。
我创建了一个名为 ContactController 的资源控制器来使其工作,但如果我使用 Route::resource
,我将无法使用 /contact/create
作为实际表单。
这是我现在的联系路线:
//Route::resource('contact', 'ContactController');
Route::post('/contact', 'ContactController@store');
Route::get('/contact', 'ContactController@create');
这是我的联系表格:
<form class="form" method="POST">
@error('name')
<div class="alert alert-danger"> $message </div>
@enderror
<div class="form-group">
<label for="name">Name</label>
<input type="text" name="name" id="name" class="form-control @error('name') is-invalid @enderror" placeholder="Enter Your Name....">
</div>
@error('email')
<div class="alert alert-danger"> $message </div>
@enderror
<div class="form-group">
<label for="email">Email</label>
<input type="text" id="email" name="email" class="form-control @error('email') is-invalid @enderror" placeholder="johndoe@example.com">
</div>
@error('subject')
<div class="alert alert-danger"> $message </div>
@enderror
<div class="form-group">
<label for="subject">Subject</label>
<input type="text" id="subject" name="subject" class="form-control @error('subject') is-invalid @enderror" placeholder="What is it you need?">
</div>
@error('content')
<div class="alert alert-danger"> $message </div>
@enderror
<div class="form-group">
<label for="content">Content</label>
<textarea class="form-control @error('content') is-invalid @enderror" name="content" id="content" rows="3" placeholder="Tell me more..."></textarea>
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
我确定我做错了什么,那会是什么?
【问题讨论】:
【参考方案1】:为了防止跨站点请求伪造攻击,Laravel 要求您的表单中存在 CSRF“令牌”。改变
<form class="form" method="POST">
到
<form class="form" method="POST">
@csrf
在表单中包含一个隐藏的 CSRF 令牌字段。
https://laravel.com/docs/7.x/csrf
【讨论】:
喜欢我如何检查许多不同的问题,现在意识到不知何故我忘了添加它。谢谢。以上是关于Laravel 7 发布联系表给我错误 419的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 7 Vue 2 Sanctum 登录错误 419; CSRF 令牌不匹配