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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章