问题:laravel工程,form提交的时候报错,419 unknown status
原因:csrf保护导致提交失败
解决:
方法一:关掉csrf验证(不推荐)
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
// \Illuminate\Session\Middleware\AuthenticateSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
//**\App\Http\Middleware\VerifyCsrfToken::class**,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
方法二:通过VerifyCsrfToken 中间件中的 $except 属性来排除这些路由(排除的路由不受CSRF保护)
方法三:在表单里面追加@csrf
<form action="/XXXX" method="POST">
@csrf
<input type="text" name="username" />
</form>
转换过来就是
<form action="/XXXX" method="POST">
<input type="hidden" name="_token" value="vLVZacFhCT1e9PmZqHd4d0s6AicZQoMszoOqqgGp">
<input type="text" name="username" />
</form>
方法四:适用Ajax提交
1.在Html的头部,加上
<meta name="csrf-token" content="{{ csrf_token() }}" />
2.ajax请求头追加
headers:{'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')}
方法五:适用Ajax提交
<input type="hidden" value="{{csrf_filed()}}" id="token" >
ajax的data中,加上_token:$("#token").val()