首頁  >  文章  >  php框架  >  laravel框架中TokenMismatchException的例外處理內容

laravel框架中TokenMismatchException的例外處理內容

不言
不言原創
2018-07-31 15:27:353340瀏覽

laravel框架下,有時在使用post或put等方法請求時,有時會報TokenMismatchException in VerifyCsrfToken.php line 67錯誤。原因是laravel預設開啟了防CSRF。
要解決該問題有兩種方式,一種是在請求時將token值也提交過去,另一種是在防CSRF時排除所要求的路由

方法一:將token值傳遞過去

表單提交時:

<form action="photo/12" method="post">
        <?php echo method_field(&#39;PUT&#39;); ?>
        <?php echo csrf_field(); ?>
        <input type="submit" name="提交" />
    </form>

使用AJAX請求時:

<meta name="csrf-token" content="{{ csrf_token() }}">$.ajaxSetup({
    headers: {        &#39;X-CSRF-TOKEN&#39;: $(&#39;meta[name="csrf-token"]&#39;).attr(&#39;content&#39;)
    }
});

#方法二:從CSRF 保護排除指定URL

例如所訪問的URL為http://laravel.com/photo/12,現在要排除關於photo資源的路由,則在App\Http\Middleware\VerifyCsrfToken::class中加入路由如下:

protected $except = [        &#39;photo&#39;,        &#39;photo/*&#39;,
    ];

注意,方法二將無法對photo相關路由進行CSRF防護,所以請根據實際情況選擇

以上就是本篇文章的全部內容了,更多laravel內容請關注laravel框架入門教學

相關文章推薦: 

Laravel框架中外觀模式的深入解析

laravel5.4框架中vue.js實作Ajax的表單提交錯誤驗證

相關影片推薦:

2017年最新的五個Laravel影片教學推薦

以上是laravel框架中TokenMismatchException的例外處理內容的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn