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://~~~、といった形)
とりあえず、http環境では動いたのでよしとします。