【发布时间】:2017-12-09 02:34:15
【问题描述】:
我正在通过查看DevDojo 创建的教程在Laravel 5.4 中学习Routing。在routes/web.php 中使用以下代码将出现TokenMismatchException 错误,并且在我按下提交按钮后我的代码不起作用:
Route::post('test', function () {
return 'Printed by the route responsible for test post action.';
});
Route::get('test', function () {
echo '<form method="post" action="test">';
echo '<input type="submit">';
echo '</form>';
});
我在这里搜索了同一个论坛以及网络上的其他地方,例如 laravel.io 或 laracasts.com,每个人都在谈论 Laravel 尝试检测正在发出的请求的 session 时出现的问题。
我尝试通过将以下几行添加到 Route::get 规则来解决问题,但问题没有得到解决:
echo '<input type="hidden" name="_method" value="post">';
echo '<input type="hidden" name="_token" value="csrf_field();">';
我希望您通过告诉我如何正确使用csrf_field()、csrf_token() 或路由文件中所需的任何其他内容来帮助我解决此问题。
非常感谢您。
【问题讨论】:
-
csrf 令牌将无法通过添加为字符串来工作。试试这个
value="'.csrf_token().'" -
如果你尝试这个 echo '' 会发生什么;
-
Check Answer 用于令牌不匹配解决方案。