【问题标题】:Laravel form HTTPS actionLaravel 表单 HTTPS 动作
【发布时间】:2015-04-17 15:13:47
【问题描述】:

我在一个我希望仅使用 HTTPS 的应用程序中使用 Laravel。

https://example.com/p 上显示的一个视图中,我打开了一个这样的表单:

{{ Form::open(['method' => "POST", "id" => "whatever"]) }}

Laravel 将其解析为:

<form method="POST" action="http://example.com/p" accept-charset="UTF-8" id="whatever">

乍一看这看起来不错,但请记住,这是在 HTTPS 页面上,所以在显示页面时我会收到混合内容警告。

但情况会变得更糟。我将服务器配置为将 HTTP 请求重定向到相应的 HTTPS 资源。这意味着,我的浏览器将表单内容发布到服务器,服务器将其重定向到 HTTPS 位置。然后浏览器丢弃 POST 请求并向服务器发送一个常规的 GET 请求,这会产生与用户之前看到的完全相同的页面。

为什么 Laravel 填写了错误的协议?如何设置正确的?

【问题讨论】:

标签: php laravel https


【解决方案1】:

使用https 选项定义您的路线并调用该路线以形成行动。 例如”

路线

Route::group(array('https'), function(){
    // all of our routes
    //for your form acction
    Route::post('form', array('as' => 'form/action', 'uses' => 'ExampleController@postForm'));  
}

所以https组下的路由应该是https,甚至是form to的路由。

【讨论】:

  • 感谢您的回答,但现在每个链接都会抛出 404 错误,无论是否使用 HTTPS。
  • 对,你能提供我尝试的示例网址吗?
  • 它可以正常工作,因为它建立了正确的链接,但它没有检测到路线。猜猜我的配置有问题。不过你的回答是正确的。
猜你喜欢
  • 2014-03-11
  • 2014-12-13
  • 2015-01-09
  • 2016-04-27
  • 2020-01-09
  • 1970-01-01
  • 2020-02-19
  • 1970-01-01
  • 2022-01-05
相关资源
最近更新 更多