SSL化したらJavaScriptが動かなくなったときの対応

ローカルでは動いていたのに、アップロードしてSSLしたらJavaScriptが動かない…。

httpとhttpsを混在させない

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>

httpと書いているのが原因。

コピペしてしまっていたのであまり意識していなかったが、ここでGoogleCDN (Content Delivery Network)上のJQueryを呼び出している。これがhttp通信になっていた。デベロッパーツールで見るとMixed Contentという警告が出ていた。

https」によるSSL暗号通信下では、安全のため「http」通信の読み込みをブロックすることがあります。つまり、Webページ内で「http」通信をしていると上手く動作しないということです。

https(SSL)通信の環境下でjavascriptが動かなくなる場合の原因と解決方法

解決策

解決策は3つ。

  1. httphttpsに書き換える
  2. http:を消してしまう
    こんな感じsrc="//ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"
  3. JQueryをダウンロードしてくる(CDNを使わないようにする)

1か2が簡単そう。しばらくはhttpsでもいいかな。

これがまた別のプロトコルに変わるときが来たら、ここ以外にも対応が必要になるはず。

(って言いながら2にしてみた)