【问题标题】:Form submits as GET Laravel 4表单提交为 GET Laravel 4
【发布时间】:2015-06-25 18:34:23
【问题描述】:

我有这样的表格

<form action="{{ Request::root() }}/articles/update/" method="post">
    <input type="hidden" name="id" value="{{ $article->id }}" />
    <input type="submit" name="submit" value="Submit" />
</form>

这样的路线

Route::post('articles/update', array('as' => 'articleUpdate', 'uses' => 'ArticlesController@update'));

但是当我提交表单时,我得到了MethodNotAllowedHttpException。在错误报告中,我可以看到请求方法是 GET。我也尝试过为方法method="POST" 使用大写字母,但它不起作用。

有什么想法吗?

【问题讨论】:

  • 问题多出在laravel的配置中,如果是$_GET你的字段,你POST他们就不行了
  • 我有另一个有效的 POST 路由。这是为了登录。但是这个不行

标签: php laravel laravel-4


【解决方案1】:

FireBug/Web 控制台检查器向您展示了什么?表单是通过 GET 还是 POST 发送的,是否有任何重定向?

对我来说似乎是一个重定向问题,在到达服务器后 Laravel 重定向到表单发送 post 请求的 URL。

【讨论】:

  • 似乎我已经为 POST 请求“永久移动 - 301”,而不是使用失败的 GET 方法的相同请求。
  • 我注意到的另一件事是,尽管表单动作有斜杠,但它重定向时没有斜杠。有什么想法吗?
  • 从表单中删除尾部斜杠并再次测试。如果这是问题所在,那么.htaccess 需要在收到 POST 信息时忽略这些重定向
  • 当我删除斜杠时有效。我应该如何编辑.htaccess
  • 我需要将此REDIRECT_HTTPS=false 添加到我的.env 文件中,它解决了我的问题
【解决方案2】:

你必须在这里使用 put 方法。换成这样的形式

 {{Form::open(array('url'=>'/articles/update','method' => 'PUT'))}}

这样的路线

 Route::put('/articles/update','ArticlesController@update');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-28
    • 2013-06-28
    • 2013-07-24
    • 1970-01-01
    • 2014-08-05
    • 1970-01-01
    • 2021-09-17
    • 2013-07-07
    相关资源
    最近更新 更多