Rumah  >  Artikel  >  rangka kerja php  >  laravel框架中TokenMismatchException的异常处理内容

laravel框架中TokenMismatchException的异常处理内容

不言
不言asal
2018-07-31 15:27:353409semak imbas

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视频教程推荐

Atas ialah kandungan terperinci laravel框架中TokenMismatchException的异常处理内容. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn