VerifyCsrfToken.php行中的TokenMismatchException

时间:2017-11-06 08:21:30

标签: laravel laravel-5.1

我正在使用laravel 5.1,它在localhost上工作,但没有在服务器上获取错误

  

VerifyCsrfToken.php第53行中的TokenMismatchException:

这是我的代码链接

https://www.itextpad.com/XMkKhqCnof

帮帮我

4 个答案:

答案 0 :(得分:2)

您必须拥有(通常是隐藏的)CSRF令牌字段作为表单的一部分,因此只需添加

即可
{{ csrf_field(); }} 

在你的形式的某个地方,Laravel将完成其余的工作。

https://laravel.com/docs/5.5/csrf

答案 1 :(得分:1)

确保您的/* Pseudo */ for (let replacement of ['first', 'second']) { str.replace("{.*}", replacement); } 版面上有这个元标记:

admin.blade.php

希望这会对你有所帮助。

答案 2 :(得分:0)

由于您正在使用表单构建器,请从表单中删除它。执行Form::open()

时,Laravel表单构建器会自动向表单添加隐藏的令牌字段
 <input type="hidden" name="_token" value="{{ csrf_token() }}">

答案 3 :(得分:0)

如果你想在javascript中使用CSRF令牌,我们主要推荐的是将meta和来自meta的调用放在一起,这将与laravel 5.3及以上版本一起使用。

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

如何使用它?

如果您使用5.3或更高版本,您可以使用token来获取不是魔法的csrf_token,您可以看到laravel已使用此代码在bootstrap.js中声明它

let token = document.head.querySelector('meta[name="csrf-token"]');

如果你低于ve​​r。 5.3可以使用上面的代码来获取csrf令牌

也许问题不是来自csrf令牌我怀疑是你的数据中的javascript无法正常运行尝试使用new FormData()而非希望有帮助。

有关表单数据的更多信息,请查看 herehere