如何解决VerifyCsrfToken.php第67行中的TokenMismatchException

时间:2017-01-31 11:23:37

标签: php laravel-5 laravel-5.2

当我提交表单时,我收到错误。您可以查看错误相关令牌不匹配异常。

如何解决

  

VerifyCsrfToken.php第67行中的TokenMismatchException错误

我已经添加了令牌变量。

<input name="_token" value="dZfqvG7m1G0TGtXtWkDoWFXs5wqIwH86mMzCKfTy" type="hidden">

是否还有其他解决方案

3 个答案:

答案 0 :(得分:0)

尝试检查config文件夹中的session.php文件。也许您的laravel安装路径不正确。

还尝试检查您的应用程序是否具有会话目录的写访问权。

chmod 777 ./storage/framework/sessions

CSRF令牌的工作方式是将值闪烁到会话中,然后将该值与下次请求时与表单一起提交的值进行比较。如果你的会话没有被设置,那么这将永远失败。

注意:有时候清除浏览器cookie也很有效;)

如果您使用的是AJAX POST,请不要忘记添加以下内容

你头脑中的

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

在您的javascript部分:

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

答案 1 :(得分:0)

这就是我解决问题的方法。

我正在使用Session_driver = file(.env文件)

清除会话数据: 删除storage / frameworks / sessions /

中的所有文件

工匠清除缓存: php artisan cache:clear

在ubuntu中重启apache: Sudo服务apache2重启

清除Chrome或您正在使用的其他浏览器中的浏览器缓存

答案 2 :(得分:0)

编辑此文件:

 vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php

中添加“ POST”
  protected function isReading($request)
    {
        return in_array($request->method(), ['HEAD', 'GET', 'OPTIONS', 'POST']);
    }