Laravel关闭CSRF功能的两种方法

Laravel提交表单时会抛出以下异常:

TokenMismatchException in VerifyCsrfToken.php line 68:

这是由于Laravel默认开启了CSRF功能导致的,具体解决方法:

方法一:将token值传递过去
表单提交时:

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

使用ajax提交时:

<meta name="csrf-token" content="{{ csrf_token() }}">

$.ajaxSetup({
    headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    }
}); 

方法二:从 CSRF 保护中排除指定 URL
比如所访问的URL为http://laravel.com/photo/12,现在想排除关于photo资源的路由,则在AppHttpMiddlewareVerifyCsrfToken::class中添加路由如下:

protected $except = [
        'photo',
        'photo/*',
    ];

注意,方法二将无法对photo相关路由进行CSRF防护,所以请根据实际情况选择

原始连接:http://www.cnblogs.com/yingww/p/5608003.html

参考连接:http://www.cnblogs.com/HD/p/4555369.html

原文地址:https://www.cnblogs.com/rommel0618/p/6674181.html