HerokuにLaravelアプリをデプロイしてformからpostしたらいきなりSSLが無効になった。。。
検証ツールのconsoleでログを見てみると、、、
' was loaded over a secure connection, but contains a form that targets an insecure endpoint '
「安全な接続を介してロードされましたが、安全でないエンドポイントを対象とするフォームが含まれています」と書いてある。
実際の挙動も、直前のページまではhttpsだったがformのsubmit実行をしたら急にhttpになりSSLが無効に。。
当然chromeから「安全な接続ではないが送信しますか?」と聞かれ、意図した遷移がされない
原因
<form method="post" action="{{ url('/if_stories') }}">
@csrf
・
・
</form>
urlヘルパーだと渡したパスがhttpで生成されてしまうらしい、、、なので
<form method="post" action="{{ secure_url('/if_stories') }}">
@csrf
・
・
</form>
「完全なHTTPS URLを生成する」secure_urlヘルパーに差し替えてデプロイしなおしたら直りました!
参考にさせていただいた記事:
https://readouble.com/laravel/5.5/ja/helpers.html
https://www.fixes.pub/program/28119.html