[英]Form submission wont work in Laravel
我在表单中使用了POST方法来提交值。 这是我的表单代码:
<form action="{{ url('/') }}" method="POST">
<input type="hidden" name="value1" value="one" />
<input type="hidden" name="value2" value="two" />
<input type="submit" value="SEND!" />
</form>
和router.php代码:
Route::get('/', function()
{
return View::make('index');
});
Route::post('/', function()
{
$data = Input::all();
var_dump($data);
});
是否每次按SEND按钮都会显示索引文件。 当我尝试注释掉get方法时。 现在,它显示了MethodNotAllowedHttpException
错误。 错误消息显示请求方法为GET
我现在应该怎么办? 那是个错误吗? 还是我的脚本有问题?
参见https://github.com/laravel/framework/issues/1804
我所看到的是Laravel通过使用代码301重定向到不带'/'的URL来删除URL中所有尾随的'/'。您的浏览器将通过GET请求而不是新的POST请求来遵循此重定向。
发布到任何带有尾随“ /”的网址时,我遇到了同样的问题。 您为什么不以“ / post”之类的其他网址处理帖子,以查看这是否真的是问题所在?
您正在使用哪个版本的Laravel? Laravel v4附带了CSRF(跨站请求伪造)保护。如果需要使用Form::token()
则需要让Laravel为您生成一个隐藏的_token
字段Form::token()
如果您使用Form::open()
方法来代替它)将为您添加令牌字段。 Laravel将自动查找该_token字段,如果找不到该字段,或者它不是正确的令牌,它将抛出异常。
编辑:在您的app /目录中查看Filters.php以获取有关CSRF过滤器的更多信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.