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') }})

 

posted @ 2023-05-11 09:52  fsl  阅读(134)  评论(0编辑  收藏  举报