laravel 自定义函数和验证控制 419 unknown status问题
自定义函数
方法1
新建文件func,在文件夹下创建函数文件。
将自定义函数文件添加到composer.json里面的autoload:files中,实现自动加载自定义函数:
"autoload": { "files": [ "func/helpers.php" ] }
刷新composer缓存
composer dump-autoload
方法2
直接引入
控制器中直接使用
require dirname(__DIR__).'/../../func/helpers.php';
在控制器中不使用验证
方法一:直接在配置文件中关掉csrf验证。
打开文件:app\Http\Kernel.php,注销掉csrf中间件。
protected $middlewareGroups = [ 'web' => [ \App\Http\Middleware\EncryptCookies::class, \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, \Illuminate\Session\Middleware\StartSession::class, \Illuminate\View\Middleware\ShareErrorsFromSession::class, \App\Http\Middleware\VerifyCsrfToken::class, \Illuminate\Routing\Middleware\SubstituteBindings::class, ],
方法二:你也可以通过将这类 URI 添加到 VerifyCsrfToken 中间件中的 $except 属性来排除对这类路由的 CSRF 保护。
app/Http/Middleware\VerifyCsrfToken.php
protected $except = [ // '/userlogin' ];
方法三:直接在api.php路由中写该路由。不需要任何操作,就可以绕过csrf,因为api路由中没有使用csrf中间件。
方法四:在表单中加入{{csrf_filed}}即可。
<input type="hidden" name="_token" value="{{csrf_token()}}">
或者
<form method="post" action="/login" id="myform">
{{ csrf_field() }}
.....
</form>
方法五 ajax提交
在Html的头部,加上<meta name="csrf-token" content="{{ csrf_token() }}" />
或
$.ajaxSetup({ headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') }})