当我提交表单时,我收到错误。您可以查看错误相关令牌不匹配异常。
如何解决
VerifyCsrfToken.php第67行中的TokenMismatchException错误
我已经添加了令牌变量。
<input name="_token" value="dZfqvG7m1G0TGtXtWkDoWFXs5wqIwH86mMzCKfTy" type="hidden">
是否还有其他解决方案
答案 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']);
}