2

I used POST method in my form to submit the value. Here is my form code:

<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>

and router.php code:

Route::get('/', function()
{
    return View::make('index');
});

Route::post('/', function()
{
        $data = Input::all();
        var_dump($data);
});

whether every time I pressed SEND button it shows the index file. When I tried commenting out the get method. Now it shows a MethodNotAllowedHttpException error. On error message it shows that request method is GET

enter image description here

What should I do now? Is that a bug? Or something wrong in my script?

4

2 回答 2

1

请参阅https://github.com/laravel/framework/issues/1804

我所看到的是,Laravel 通过使用代码 301 重定向到不带“/”的 url 来从 URL 中删除所有尾随的“/”。您的浏览器将使用 GET 请求而不是新的 POST 请求来遵循此重定向。

在发布到带有尾随“/”的任何网址时,我遇到了同样的问题。你为什么不在另一个 url 上处理帖子,比如“/post”,看看这是否真的是问题所在?

于 2013-11-12T19:47:21.503 回答
0

你使用的是哪个版本的 Laravel?Laravel v4 内置了 CSRF(跨站点请求伪造)保护。您需要_token通过让 Laravel 生成一个隐藏字段来包含一个隐藏字段,Form::token()如果您使用Form::open()方法而不是它会为您添加令牌字段。Laravel 将自动查找该 _token 字段,如果找不到,或者不是正确的令牌,它将抛出异常。

编辑:查看您的 app/ 目录中的 Filters.php 以获取有关 CSRF 过滤器的更多信息。

于 2013-11-12T19:35:31.600 回答