Laravel表单HTTPS操作

3

我在一个应用程序中使用Laravel,希望它只使用HTTPS。

在一个视图上,如 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填入错误的协议?如何设置正确的协议?

可能是Laravel:在Form :: open()中使用HTTPS的重复问题。 - Dhiraj
1个回答

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,包括表单提交的路由。

谢谢您的回答,但现在每个链接都会抛出404错误,无论是否使用HTTPS。 - Johann Bauer
你好,能否提供一下你尝试访问的URL示例? - Safoor Safdar
它能够正确地建立链接,但无法检测到路由。我猜我的配置出了问题。不过你的答案是正确的。 - Johann Bauer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接