繁体   English   中英

表单提交在Laravel中不起作用

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM