我很惭愧地问这个问题,因为其他人多次问过这个问题,但我找不到任何解决办法。
我使用的是Laravel 5.3,我根据文档和其他stackoverflow主题创建了一个简单的表单。
在我的本地机器上一切正常。将我的项目放在服务器上之后,在提交表单后,此错误一直显示:
TokenMismatchException in VerifyCsrfToken.php line 68:
在head
部分添加了CSRF令牌:
<head>
<meta name="csrf-token" content="{{ csrf_token() }}" />
</head>
表单还包含csrf:
<form method="POST" action="/save_new_order">
{{ csrf_field() }}
<input type="text" name="web_name">
<textarea cols="30" rows="15" name="web_description"></textarea>
<input type="email" name="web_email">
<input type="submit" id="submitButton" value="WYŚLIJ" name="submit">
</form>
我也尝试过使用:
<input type="hidden" name="_token" value="{{ csrf_token() }}">
而不是:
{{ csrf_field() }}
每次使用表单时,令牌都会保存在storage / framework / sessions /中。
请帮助我,我工作超过15个小时,到目前为止没什么。
答案 0 :(得分:2)
当它在您的本地计算机上运行时,而不是在您的实时服务器上运行时,这可能是权限问题。检查Laravel的会话目录,并验证您的Web服务器用户是否具有rw权限。
此外,当您为本地和生产服务器使用相同的域时,请尝试清除Cookie。但你可能已经尝试了这个
答案 1 :(得分:2)
我的.env
文件中有不可见的BOM字符。
我在记事本++中将它转换为utf8-without-BOM,现在可以正常工作。