【发布时间】:2016-12-05 11:34:57
【问题描述】:
我对 Laravel 有点陌生。我为 GET 和 POST 创建了一些路由,但唯一可以正常工作的是 GET 路由。 POST 总是返回 TokenMismatchException,即使里面的进程和数据库查询被正确执行。我在 SO 上看到的一些问题通常是在谈论 AJAX,而解决方案涉及到发送令牌。但是我还没有使用任何 AJAX ......而且通常答案说如果我使用普通的 POST 表单,Laravel 会插入一个隐藏的令牌。
这是路线代码:
Route::post('/practice/{level_id?}/{group_id?}/{command?}', 'WebController@practice');
Route::get('/practice/{level_id?}/{group_id?}/{command?}', 'WebController@practice');
这是我在网络控制器上接收它的方式:
public function practice($level_id = "", $group_id = "", $command = "")
有什么问题吗?什么可能使我的 POST 请求失败?谢谢。
【问题讨论】:
-
发送隐藏的输入字段类似于
<input name="_token" type="hidden" value="FaHZmwcnaOeaJzVdyp4Ml8B6l1N1DLUDsZmsjRFL"> -
@ChoncholMahmud 你的意思是
<input type="hidden" name="_token" value="{{ csrf_token() }}">? -
是的,我是认真的。你能给我看看表单域吗?
-
@ChoncholMahmud 哦,添加代码并清除缓存后,现在它可以工作了。我从这个问题stackoverflow.com/questions/30934906/… 中读到的“表单构建器”混淆了普通表单,该问题建议删除令牌。谢谢!
标签: php forms laravel post token