繁体   English   中英

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

[英]How to solve TokenMismatchException in VerifyCsrfToken.php line 67

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

怎么解决

VerifyCsrfToken.php 第 67 行中的 TokenMismatchException:错误

我已经添加了令牌变量。

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

有没有其他解决方案

尝试检查 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')
     }
});

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

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

清除会话数据:删除 storage/frameworks/sessions/ 中的所有文件

工匠清除缓存:php工匠缓存:清除

在 ubuntu 中重启 apache:Sudo service apache2 restart

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

编辑此文件:

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

将“POST”添加到

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM