ドグサレ初心者のへっぽこビッグウェーブ

地球の底辺にいるゴミがプログラミングとか音楽とかを語るクソブログ

herokuに上げたらニコニコ動画が取ってこれなくなった〜httpsは魔物でござるの巻〜

はてさて無事herokuにデプロイはできたのですが。

いざデータを入れてみると、youtubeエンベッドはできたのですが、ニコニコのエンベッドが動かない。

デプロイするときに色々消したのがまずったのかな…と思ったけど、ローカルでは普通に動いてる。


Developerツールを覗いてみると、以下のエラーが。

Mixed Content: The page at 'https://musico.herokuapp.com/anime_titles/9' was loaded over HTTPS,
but requested an insecure script 'http://ext.nicovideo.jp/thumb_watch/sm8539552'.
This request has been blocked; the content must be served over HTTPS.

httpsとhttpがミックスコンテンツ。

。。。。。。


プロに聞いたところ。
基本的にhttpsはセキュアにする性質上、httpsからhttpのサイトを呼び出すことはできない。

んで、herokuではhttpでもhttpsでもどっちでも対応しているんだけれども、デプロイ後のリンクはhttpsで張られているため、期せずしてhttpsでページを見ていたようです。

httpでアクセスしなおしたところ、表示されました。


ちなみにプログラムの中でURLソース指定するときには、

<script type="text/javascript" src="//ext.nicovideo.jp/thumb_watch/<%= $1 %>"></script>

というように、頭のhttp部分を抜くと、自分のページに依存させることができるらしいです。
(呼び出し元のページがhttpならhttp://~~~httpsならhttps://~~~、といった形)



ニコニコ動画httpsでアクセスできないようでしたが。

とりあえず、http環境では動いたのでよしとします。