質問: お世話になっております。 下記の現象で困っております。おわかりになる方いらっしゃいましたらよろしくお願いします。 [環境] ``` ・さくらインターネットのレンタルサーバー ・PHP7.2 ・CentOS ・https ``` [現象] ``` Laravel5でAjaxを使用すると500エラー ``` [追加情報] サイトを参考に ``` ・ ・ headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')} ``` で対応すると ``` $ is not defined ``` というエラーが出ます(おそらくjQueryが入っていないというエラー)。 上記の対応する場合はjQueryを読み込む必要があるということでしょうか? [追加情報2] 全く同じコーディングを下記の環境で行うとエラーも出ず正常に動作します。 ``` ・GCP ・Ubuntu ・PHP7.2 ・nginx ・http ``` [追加情報3] 全く同じコーディングを下記の環境で行うとエラーも出ず正常に動作します。 ``` ・Windows Xubsystem Linux ・Ubuntu ・PHP7.2 ・nginx ・http ``` 全く同じソースで、環境ごとにAjaxの動作が変更してしまうので困惑しております。 おわかりになる方いらっしゃいましたらよろしくお願いします。
回答: さくらインターネットのSSLのかけかたが他のサーバとは違い SSLを待ち受けるサーバと、apache+phpが動いているサーバが別です Client <--https--> SSLサーバ <--http--> PHPサーバ 雑ですがこんな感じですね。 で、Laravelからしたらhttpで接続されているので、laravelで出力するURLは全てhttpで出されるので assetsへのパスがhttpで出される。しかしクライアントからみたらSSLかかっているので、httpsサイト上からhttpのリソースが読めなくて$ is not defined となっている気がします