ノウハウ

https通信下でjavascriptが動かない場合の対処法

投稿日:

https 通信下で javascript が動かない!とお困りという事は、もしかしてあなたのページは特定のページだけ https 通信を行っているのではないでしょうか?例えばログインページ、決済ページのみ暗号化を行う https でその他のページは標準の http という場合などです。

その場合 http 通信下では javascript や jquery が動くのに、https 通信下のページでは動かないという事態になります。ヘッダータグ内のスクリプトタグで

<script type="text/javascript" src="http://test.jp/example.js"></script>

という記述をしている場合、https のページになっても http で javascript が読み込まれる事になります。つまり安全なページから安全ではないものを読み込もうとしているという事で、これがブラウザによってはブロックされてしまうのが原因です。

どう対処すれば良いか?

例えば google から提供されているライブラリを例とすると

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

これを

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

こうすれば良いのです。

javascript に限らず css、画像の URL は http 部分を省略できるのです。これでページが http の時は http で読み込まれますし、https の時は https で自動で読み込まれます。その結果、http でも https でも javascript が動くようになります。

自分のサーバーに置く javascript はもちろん相対パス(/js/test.js など)で書けば良いのですが google の外部のライブラリを使う場合、絶対パスで書いてしまう場合があるでしょう。その場合 https で動かなくて困る事になります。

http 部分を省略する事で万事解決するわけです。

-ノウハウ
-

Copyright© ウェブミスト(Webmist) , 2024 AllRights Reserved Powered by STINGER.